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