<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 基于CAN/LIN息線(xiàn)的汽車(chē)混合網(wǎng)關(guān)設計

基于CAN/LIN息線(xiàn)的汽車(chē)混合網(wǎng)關(guān)設計

作者: 時(shí)間:2010-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏
 

數據接收是從上接收數據,進(jìn)行必要的協(xié)議轉換,再將轉換后的數據存人相應的緩沖區。中有3個(gè)接收子程序,分別對應兩路控制器及一路發(fā)送器。數據接收采用中斷方式,由于不同網(wǎng)絡(luò )有不同的實(shí)時(shí)性要求,因此為3個(gè)接收程序設定了不同的中斷級別。高速的實(shí)時(shí)性要求最高,中斷級別也設為最高;而的實(shí)時(shí)性在三者中最低,故中斷級別也最低。當一個(gè)接收中斷發(fā)生后,進(jìn)入接收中斷子程序,判斷相應的緩沖區是否已滿(mǎn)(低速的接收程序在接收到數據后需要根據數據的目的網(wǎng)絡(luò )確定緩存區為BUF2還是BUF3)。如果緩沖區已滿(mǎn),則產(chǎn)生一個(gè)溢出錯誤標志;如果沒(méi)有滿(mǎn),則將數據進(jìn)行相應的協(xié)議轉換,并將轉換后的數據存入相應的緩存區,退出中斷并完成接收。圖6所示為低速CAN數據接收過(guò)程的簡(jiǎn)要流程。

3.4 數據的處理

  的數據處理是指協(xié)議的轉換和數據在緩沖區的存儲與轉發(fā)。每當接收到一組數據時(shí),首先進(jìn)行協(xié)議轉換,然后再將其存入到相應的緩存區。高低速CAN的協(xié)議相同,并不需要轉換,因此主要是進(jìn)行CAN協(xié)議和協(xié)議之間的轉換。

  CAN協(xié)議和LIN協(xié)議都是以幀(frame)為數據單位進(jìn)行通信的。在進(jìn)行LIN協(xié)議到CAN協(xié)議的轉換時(shí),首先是將LIN幀分解,從標識符場(chǎng) (identfield)提取出其中的ID標識符,從數據場(chǎng)(data field)提取出有效數據,然后根據這些信息封裝成符合要求的CAN幀格式。CAN協(xié)議到LIN協(xié)議的轉換過(guò)程亦是如此。先將CAN幀分解,從仲裁域 (arbitration field)和數據域(data field)中提取出有用信息,然后封裝成符合要求的LIN幀格式。

  數據的4個(gè)緩沖區BUF1~BUF4為FIFO(First InFirst Out)緩沖區,本文采用循環(huán)隊列(circular queue)來(lái)實(shí)現數據的先進(jìn)先出。兩個(gè)指針Read和Write分別指示隊頭元素和隊尾元素在緩沖區空間中的位置,它們的初值在隊列初始化時(shí)均應置為 0,每讀取或寫(xiě)入一次數據,都要對緩沖區的參數進(jìn)行調整。寫(xiě)數據時(shí),將新元素插入Write所指的位置,然后將Write加1;讀數據時(shí),刪去Read所指的元素,然后將Read加1并返回被刪元素。

4 通信測試

  將網(wǎng)關(guān)的高速CAN接口和低速CAN接口分別與單獨的CAN節點(diǎn)電路相連,LIN接口與單獨的LIN從節點(diǎn)相連,組成測試網(wǎng)絡(luò )。測試的主要內容為高速 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í)在另一個(gè)串口終端上進(jìn)行數據的監測。測試結果表明,發(fā)送數據內容與監測到的數據內容一致。

5 總 結

  以AT91SAM7A3為核心的一款CAN/LIN混合網(wǎng)關(guān),實(shí)現了中高速CAN、容錯CAN總線(xiàn)及LIN總線(xiàn)三類(lèi)網(wǎng)絡(luò )之間的通信,使汽車(chē)中的各類(lèi)網(wǎng)絡(luò )的信息能夠有效共享,實(shí)現了不同性質(zhì)網(wǎng)絡(luò )的互聯(lián)。


上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>