基于FPGA的PC/104-CAN通訊板設計
2.2 CAN多幀數據通信打包和解包技術(shù)
CAN通信數據傳輸采用短幀結構,每幀最多發(fā)送8個(gè)字節的有效數據,總線(xiàn)的有效傳輸速率很低,當在傳輸的數據量超過(guò)8個(gè)字節有效數據時(shí),給用戶(hù)編程帶來(lái)了一定的困難。利用如圖5所示的CAN的數據包格式,只需將待傳輸的數據進(jìn)行相應的打包和解包操作即可實(shí)現數據的單幀和多幀傳輸,有效地簡(jiǎn)化了數據通信。本文引用地址:http://dyxdggzs.com/article/191897.htm
采用如圖5所示的CAN數據包格式,無(wú)論是單幀還是多幀傳輸,只要把數據填入相應的發(fā)送緩沖區即可,在接收方,則將數據解包并放入接收緩沖區即可。與上述數據包格式相對應,當CAN總線(xiàn)進(jìn)行多幀傳輸時(shí),其CAN的多幀數據傳輸幀結構如圖6所示。
在圖6中,當發(fā)送的有效數據個(gè)數不超過(guò)4個(gè)時(shí),一幀數據即可傳輸;當有效數據超過(guò)4個(gè)時(shí),則需要多幀傳輸。此處的地址變址是指從發(fā)送緩沖區所取的存放于該幀的第一個(gè)有效數據的存儲地址相對于緩沖區首地址的偏移量,如第一幀中地址變址為4,第二幀中的地址變址是10。地址變址的設置,使得對數據包的解包和打包實(shí)現起來(lái)較容易。
3 結 語(yǔ)
該通訊板設計簡(jiǎn)單,只需一塊FPGA,一個(gè)CAN控制器SJA1000T和收發(fā)器PCA82C250,為增強系統的穩定性,在通信通道上均采用光電隔離技術(shù),保護PC機避免因地環(huán)流而損壞,增強系統在惡劣環(huán)境中使用的可靠性。該通訊板采用的CAN數據包格式提高了總線(xiàn)的有效傳輸速率,經(jīng)測試達到500 Kb/s,提高了通訊板通訊的實(shí)時(shí)性。本設計方案已成功應用于工業(yè)控制器中,效果理想。
評論