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