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