基于CAN/LIN息線的汽車混合網(wǎng)關(guān)設(shè)計
數(shù)據(jù)接收是從總線上接收數(shù)據(jù),進行必要的協(xié)議轉(zhuǎn)換,再將轉(zhuǎn)換后的數(shù)據(jù)存人相應(yīng)的緩沖區(qū)。網(wǎng)關(guān)中有3個接收子程序,分別對應(yīng)兩路CAN控制器及一路LIN發(fā)送器。數(shù)據(jù)接收采用中斷方式,由于不同網(wǎng)絡(luò)有不同的實時性要求,因此為3個接收程序設(shè)定了不同的中斷級別。高速CAN的實時性要求最高,中斷級別也設(shè)為最高;而LIN總線的實時性在三者中最低,故中斷級別也最低。當一個接收中斷發(fā)生后,進入接收中斷子程序,判斷相應(yīng)的緩沖區(qū)是否已滿(低速CAN的接收程序在接收到數(shù)據(jù)后需要根據(jù)數(shù)據(jù)的目的網(wǎng)絡(luò)確定緩存區(qū)為BUF2還是BUF3)。如果緩沖區(qū)已滿,則產(chǎn)生一個溢出錯誤標志;如果沒有滿,則將數(shù)據(jù)進行相應(yīng)的協(xié)議轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)存入相應(yīng)的緩存區(qū),退出中斷并完成接收。圖6所示為低速CAN數(shù)據(jù)接收過程的簡要流程。
3.4 數(shù)據(jù)的處理
網(wǎng)關(guān)的數(shù)據(jù)處理是指協(xié)議的轉(zhuǎn)換和數(shù)據(jù)在緩沖區(qū)的存儲與轉(zhuǎn)發(fā)。每當接收到一組數(shù)據(jù)時,首先進行協(xié)議轉(zhuǎn)換,然后再將其存入到相應(yīng)的緩存區(qū)。高低速CAN的協(xié)議相同,并不需要轉(zhuǎn)換,因此主要是進行CAN協(xié)議和LIN協(xié)議之間的轉(zhuǎn)換。
CAN協(xié)議和LIN協(xié)議都是以幀(frame)為數(shù)據(jù)單位進行通信的。在進行LIN協(xié)議到CAN協(xié)議的轉(zhuǎn)換時,首先是將LIN幀分解,從標識符場 (identfield)提取出其中的ID標識符,從數(shù)據(jù)場(data field)提取出有效數(shù)據(jù),然后根據(jù)這些信息封裝成符合要求的CAN幀格式。CAN協(xié)議到LIN協(xié)議的轉(zhuǎn)換過程亦是如此。先將CAN幀分解,從仲裁域 (arbitration field)和數(shù)據(jù)域(data field)中提取出有用信息,然后封裝成符合要求的LIN幀格式。
數(shù)據(jù)的4個緩沖區(qū)BUF1~BUF4為FIFO(First InFirst Out)緩沖區(qū),本文采用循環(huán)隊列(circular queue)來實現(xiàn)數(shù)據(jù)的先進先出。兩個指針Read和Write分別指示隊頭元素和隊尾元素在緩沖區(qū)空間中的位置,它們的初值在隊列初始化時均應(yīng)置為 0,每讀取或?qū)懭胍淮螖?shù)據(jù),都要對緩沖區(qū)的參數(shù)進行調(diào)整。寫數(shù)據(jù)時,將新元素插入Write所指的位置,然后將Write加1;讀數(shù)據(jù)時,刪去Read所指的元素,然后將Read加1并返回被刪元素。
4 網(wǎng)關(guān)通信測試
將網(wǎng)關(guān)的高速CAN接口和低速CAN接口分別與單獨的CAN節(jié)點電路相連,LIN接口與單獨的LIN從節(jié)點相連,組成測試網(wǎng)絡(luò)。測試的主要內(nèi)容為高速 CAN和低速CAN之間的通信,低速CAN和LIN網(wǎng)絡(luò)之間的通信。高速CAN網(wǎng)絡(luò)采用速率為500 kb/s,低速CAN網(wǎng)絡(luò)采用的速率為100kb/s,LIN網(wǎng)絡(luò)采用的速率為10 kb/s。利用PC機的串口發(fā)送測試數(shù)據(jù),同時在另一個串口終端上進行數(shù)據(jù)的監(jiān)測。測試結(jié)果表明,發(fā)送數(shù)據(jù)內(nèi)容與監(jiān)測到的數(shù)據(jù)內(nèi)容一致。
5 總 結(jié)
以AT91SAM7A3為核心設(shè)計的一款CAN/LIN混合網(wǎng)關(guān),實現(xiàn)了汽車網(wǎng)絡(luò)中高速CAN總線、容錯CAN總線及LIN總線三類網(wǎng)絡(luò)之間的通信,使汽車中的各類網(wǎng)絡(luò)的信息能夠有效共享,實現(xiàn)了不同性質(zhì)網(wǎng)絡(luò)的互聯(lián)。
評論