999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CANFD與TCP/IP網關的設計與實現

2019-12-05 08:35:54周琦龔元明
智能計算機與應用 2019年5期

周琦 龔元明

摘 要:目前汽車CAN總線網絡負載日益增加,CAN FD總線作為新技術,在未來有可能取代CAN總線而成為新一代汽車總線網絡。針對汽車總線網絡和以太網互通互聯的問題,在研究CAN FD協議的基礎上,本文設計了以ATMEL公司的SAME54系列單片機作為主控制器的CAN FD-TCP/IP網關。該網關以ATA6561作為CAN FD收發器,KSZ8091作為以太網PHY,利用LwIP(Light weight Internet Protocol)協議棧將TCP/IP和CAN FD數據進行協議轉換,實現CAN FD網絡和終端互聯網設備的信息交互,該網關工作正常,能夠為新一代網聯汽車搭載CAN FD技術提供參考。

關鍵詞: CAN FD總線;以太網;網關;車聯網

【Abstract】 At present, the load of automotive CAN bus network is increasing. As a new technology, CAN FD bus may replace CAN bus in the future and become a new generation of bus network. Aiming at the problem of interconnecting the bus network and Ethernet, based on the research of CAN FD protocol, this paper designs a CAN FD-TCP/IP gateway with ATMEL's SAME54 series MCU as the main controller. The gateway uses ATA6561 as the CAN FD transceiver, and KSZ8091 as the Ethernet PHY. The LwIP (Light Weight Internet Protocol) protocol stack is used to convert the TCP/IP and CAN FD data to realize the information exchange between the CAN FD network and the terminal Internet device. The gateway works fine and can provide reference for the new generation networked car with CAN FD technology.

【Key words】 ?CAN FD bus; Ethernet; gateway; vehicle networking

0 引 言

隨著電子、半導體、通訊等行業的快速發展,汽車電子智能化的需求也愈加強烈,消費者希望駕駛動力性、舒適性、經濟性以及娛樂性更強的汽車。汽車制造商為了提高產品競爭力,將越來越多的電子控制系統加入到汽車控制中。受限于CAN傳輸速率,通常汽車高速CAN系統的實際使用速率為500 kbit/s[1]。ECU的大量增加使總線負載率急劇增大以致造成網絡擁堵,較高的總線負載率可能會增大報文延遲、降低系統的擴展性,尤其對于實時性要求較高的安全系統,高負載率甚至可能影響汽車行車安全[2]。CAN總線最多只能傳輸8字節的特點又造成多幀傳輸,使得通信效率低下。為此,德國博世公司對CAN總線數據鏈路層進行改進,啟動了CAN FD開發[3]。CAN FD憑借總線帶寬和有效載荷的優勢,以及向下兼容CAN 總線的特點[4],在未來可能成為汽車總線架構中的應用解決方案。本文運用CAN FD技術,結合TCP/IP協議,設計網關對2種通信協議進行轉換,在智能網聯汽車發展的背景下,可實現汽車總線網絡和互聯網終端設備的信息交互。 對此擬展開研究論述如下。

1 CAN FD總線介紹

由于汽車行業電子單元逐漸增多,傳統CAN總線帶寬難以滿足要求,改進后的CAN FD克服了CAN總線的限制,傳輸速率可達5 Mbit/s,并且有效載荷(數據場)可擴展至64字節。

CAN FD數據鏈路層如圖1所示,分為仲裁場和數據場。其中,仲裁場通信速率和傳統CAN一致,在數據場通信速率可達5 Mbit/s。仲裁場EDL位用來區分是CAN幀、還是CAN FD幀,BRS位區分是否轉換可變速率,ESI位表示主被動錯誤狀態。數據場采用新的4位DLC編碼表示數據場長度,DLC小于8時與原CAN 總線一致,大于8時有一個非線性增長,直至擴展到64字節。CRC校驗以含填充位進行計算,在第一位以及之后每4位添加一個填充位加以分割,該填充位對上一位取反,作為格式檢查。由于CAN FD數據場長度有很大變化,CRC生成多項式根據DLC長度來選擇,分為CRC_15、CRC_17和CRC_21[5-7]。

2 網關系統硬件設計

系統硬件主要由主控制器、CAN FD收發器、以太網收發器、RJ45網絡接口、EEPROM存儲模塊以及電源模塊組成。主控制器采用ATMEL公司的SAME54P20A芯片,該芯片是一款基于ARM Cortex-M4架構的32位處理器,運行時鐘可高達120 MHz,RAM存儲區達到256 KB,并帶有10/100 M以太網MAC和CAN/CAN FD接口,工作電壓1.71~3.6 V。所以只需外接CAN FD收發器和以太網收發器即可實現協議轉換功能,網關系統結構框圖如圖2所示。由圖2可知,對其中各組成單元的設計解析可做重點闡述如下。

2.1 CAN FD模塊硬件設計

CAN FD收發器采用Microchip公司的ATA6561,該收發器符合ISO 11898-1(2015)標準,最快通信速率可達5 Mbit/s,支持低功耗喚醒功能,工作電壓5 V。CAN FD和CAN物理層相似,STBY為喚醒引腳,連接到SAME54輸出引腳,在CANH和CANL引腳間并聯2個60 Ω終端電阻,屏蔽干擾。該模塊設計電路如圖3所示。

2.2 以太網模塊硬件設計

以太網模塊主要包括以太網PHY、變壓器和RJ45端口,電路設計如圖4所示。選用KSZ8091MLX作為以太網PHY,支持IEEE 802.3標準,帶有MII接口,工作電壓3.3 V。MII規范為端口提供16根引腳,分別為MAC層和物理層之間的發送、接收接口,MDIO和MDC分別是數據線和時鐘線。KSZ8091采用25 MHz外部晶振提供時鐘信號。RJ45端口選用HALO公司的HFJ11系列,內置網絡變壓器,簡化了設計電路。

2.3 存儲模塊

系統中存儲模塊采用ATMEL公司生產的AT24MAC芯片,電路設計如圖5所示。AT24MAC是一個2Kb的非易失性存儲器(EEPROM),和主芯片MCU采用 I2C兩線接口連接,A0、A1、A2用來選擇器件地址。存儲模塊用于存儲以太網通信的IP地址、子網掩碼和網關地址等參數。

3 軟件設計

基于前述網關模型,軟件模塊主要由3部分組成,分別為:CAN FD網絡接口模塊、TCP/IP網絡接口模塊、協議數據轉換模塊。開發工具為Atmel Start和Atmel Studio。Atmel Start在線生成底層驅動,Atmel Studio加載驅動后進行軟件開發。研究可得各部分開發設計內容詳述如下。

3.1 CAN FD網絡接口模塊

3.1.1 CAN FD波特率選擇

CAN FD在物理層會進行硬同步和延時補償,直接由ATA6561收發器完成。波特率設置主要是對位時間進行分配。CAN FD波特率分為仲裁場和數據場兩段,仲裁場波特率和傳統CAN總線波特率一致,數據場波特率可達5 Mbit/s。一般來說,數據場波特率要大于仲裁場波特率,因此需要分別配置這兩段波特率。帶CAN FD接口的單片機一般有2套位時間定義寄存器,可采用不同的位時間單位,位時間各段分配比例也可不同。以仲裁場波特率為500 Kbps和數據場波特率為2 Mbps為例,說明CAN FD波特率配置方法。假設CAN FD時鐘fsys=12 MHz,仲裁段波特率分頻器NBRP=2,相位緩沖段1的NTSEG1=8,相位緩沖段2的NTSEG2=3,同步跳轉寬度NSJW=1,仲裁段波特率為:

3.1.2 CAN FD收發程序設計

CAN FD在數據鏈路層遵循ISO11892-2(2015),作為CAN FD幀格式時必須把EDL位和BRS位置位,相應地,初始化時可在SAME54中使能CCCR寄存器中的FDOE和BRSE位,并對相應波特率寄存器進行操作。CAN FD幀信息封裝在結構體中,該結構體包含幀ID、幀類型、幀長度、幀格式以及有效載荷。在發送CAN FD幀時,首先定義好發送緩沖區長度,最大為64字節,寫入有正確ID的發送郵箱。在向發送緩沖區發送一個新報文之前,需要檢查緩沖區是否空閑,若空閑,則寫入數據到發送緩沖區。在接收中斷下,接收CAN FD幀時需要設置接收郵箱,郵箱按照ID編號優先級由大到小排列。若郵箱的接收緩沖區滿,則讀取并保存數據,而后再釋放緩沖區。如果具有相同幀ID的新消息被接收,之前的消息會被覆蓋。多個郵箱可以被串在一起形成接收緩沖數據。在接收時還可以設置接收過濾器,可選擇接收特定ID的報文。CAN FD接收和發送流程如圖6所示。

3.2 TCP/IP網絡接口模塊

SAME54P20A的MAC控制器和PHY芯片KSZ8091構成物理層和數據鏈路層,本設計采用基于TCP/IP的LwIP協議棧實現網絡層和傳輸層,可在無操作系統的情況下獨立運行[8]。LwIP實現的重點是在保持TCP協議主要功能的基礎上減少對RAM的占用。

LwIP協議棧在TCP實現中專門使用一個數據結構來描述一個連接,把這個數據結構稱為TCP控制塊。TCP控制塊包含了雙方實現基本通信所需要的信息,如發送窗口、接收窗口、數據緩沖區等[9]。TCP協議實現的本質就是對TCP控制塊中各個字段的操作。

TCP編程函數輸出流程如下:tcp_write構造數據交互報文,在TCP層由報文段構造函數tcp_enqueue來完成,該函數將TCP數據和首部部分字段填入報文中,并將報文段組織在發送緩沖隊列上;tcp_output函數被調用時會把控制塊發送緩沖隊列上依次取下報文段發送,然后調用tcp_output_segment發送報文段,該函數完成首部剩余字段中確認號、通告窗口的填寫,并與IP層的ip_route交互,獲得偽首部中源IP地址字段;最后,IP層的發送函數ip_output被調用,組裝并發送IP數據報文。

TCP輸入流程如下:TCP報文從IP層ip_input函數傳遞給TCP層tcp_input函數,這個函數是TCP層的總輸入函數,為報文段匹配TCP控制塊;tcp_process函數完成了TCP狀態機的實現,如果檢測到報文中有數據,則調用tcp_receive函數,完成TCP中數據接收、數據重組等工作。TCP函數調用流程如圖7所示。

TCP服務器建立步驟如下:

(1)調用函數tcp_new()新建一個TCP控制塊。

(2)調用函數tcp_bind()綁定本地IP地址和端口號。

(3)調用函數tcp_listen()服務器進入監聽狀態,等待客戶端連接。

(4)調用函數tcp_accept()注冊建立連接后的回調函數。

3.3 協議轉換模塊

CAN FD總線和以太網都遵循OSI模型,協議之間的轉換實質就是2種協議的封裝和解封裝過程。協議轉換流程如圖8所示。

當CAN FD收發器ATA6561收到數據傳入主控制器SAME54P20A時,取出CAN FD幀數據段內容,參考TCP/IP協議格式,將數據段封裝到TCP數據包中,依次添加TCP報頭、IP報頭,然后把打包好的IP數據傳送給以太網收發器KSZ8091,添加以太網幀頭并發送至以太網。

當有數據幀從以太網端發送過來,首先經過RJ45網絡接口送到以太網收發器KSZ8091,KSZ8091隨后將數據幀直接傳給主控制器SAME54,主控制器會對接收到的以太網數據幀解封裝,去除以太網幀頭、TCP報頭等,得到原始數據信息,然后封裝成CAN FD幀格式,經收發器ATA6561的CANH、CANL差分線發送出去。

4 系統功能測試

LwIP協議棧初始化配置時,TCP服務器端口號為6060,IP地址為192.168.0.100,網關地址為192.168.0.1,并開啟監聽模式。TCP客戶端IP地址設置為192.168.0.149,子網掩碼255.255.255.0,網關地址為192.168.0.1。網關初始化完成之后,TCP客戶端發送和TCP服務器的連接請求,TCP服務器和客戶端經過三次握手后建立TCP連接。

打開TCP/IP端網絡調試助手,CAN FD端ZCANPRO軟件,進行收發測試,如圖9和圖10所示。以第二條報文為例, CAN FD幀ID為0x281,報文數據為aa 01 02 03 04 05 06 07 08 09 0a 0b,幀類型為標準幀。發送該CAN FD報文后,網絡調試助手接收到TCP/IP幀,第一個字節00代表標準幀,01代表擴展幀。第二至第四字節為幀ID,之后為報文數據。通過多次比對,兩者收發內容一致,證明該網關能實現CAN FD和TCP/IP幀之間的協議轉換,實時性好。

5 結束語

本文基于新興CAN FD總線技術,研究了CAN FD總線相比于傳統CAN總線帶來的變化和優勢,對CAN FD和TCP/IP協議轉換網關進行了軟硬件設計,通過測試驗證該網關具有良好的可靠性,為整車總線網絡和終端網聯設備間的信息交互提供設計參考。

參考文獻

[1]符曉芬. CAN總線在汽車電氣控制中的應用[J]. 電子技術與軟件工程, 2017(11):247.

[2]陳曦.CAN總線實時性和可靠性若干問題的研究[D]. 天津:天津大學, 2010.

[3]XIE Yong, HUANG Pengcheng, LIANG Wei, et al. Comparison between CAN and CAN FD: A quantified approach[C]// Proc. of IUCC.Guangzhou, China:IEEE, 2017:1399-1403.

[4]楊福宇. 有關CAN FD的評論[J]. 單片機與嵌入式系統應用, 2012, 12(7):34-36,40.

[5]王偉. CAN FD突破CAN總線應用局限[J]. 電子技術應用, 2015, 41(5):3,13.

[6]ZAGO G M, FREITAS E P D. A quantitative performance study on CAN and CAN FD vehicular networks[J]. IEEE Transactions on Industrial Electronics, 2018,65(5):4413-4422.

[7]CENA G, BERTOLOTTI I C, HU Tingting, et al. Improving compatibility between CAN FD and legacy CAN devices[C]// 2015 IEEE 1st International Forum on Research & Technologies for Society & Industry Leveraging A Better Tomorrow(RTSI). Turin, Italy:IEEE,2015:1-8.

[8]唐文俊, 李維波, 賀洪,等. 一種基于ARM的遠程監控系統的設計與實現[J]. 船電技術, 2011, 31(11):1-5.

[9]孫樂鳴, 江來, 代鑫. 嵌入式TCP/IP協議棧LWIP的內部結構探索與研究[J]. 電子元器件應用, 2008,10(3):79-82.

主站蜘蛛池模板: 天堂网国产| 亚洲欧美精品一中文字幕| 伊人激情综合网| 精品福利视频网| www.av男人.com| 无套av在线| 人妻中文久热无码丝袜| 91精品国产综合久久香蕉922| 人人91人人澡人人妻人人爽 | 天堂成人在线| 成人中文在线| 自拍欧美亚洲| 中文字幕人成人乱码亚洲电影| 国产高清不卡视频| 欧美精品1区2区| 久热这里只有精品6| 狠狠躁天天躁夜夜躁婷婷| 国产91精品调教在线播放| 狠狠躁天天躁夜夜躁婷婷| 国产美女在线免费观看| 久久久久国产一级毛片高清板| 在线国产91| 国产成人精品亚洲77美色| 亚洲欧洲日本在线| 国产在线精品99一区不卡| 欧美色图久久| 中文字幕无线码一区| 亚洲人成网18禁| 一级毛片中文字幕| 欧美激情网址| 国产精品浪潮Av| 色综合网址| 中文一区二区视频| 97久久人人超碰国产精品| 五月天香蕉视频国产亚| 久久久久久高潮白浆| 久996视频精品免费观看| 国产亚洲欧美另类一区二区| 91精品国产无线乱码在线| 亚洲第一成网站| 免费高清毛片| 国产三级精品三级在线观看| 日韩黄色大片免费看| 东京热av无码电影一区二区| 国产黄色爱视频| 国产成人综合亚洲欧洲色就色| 国产乱子伦精品视频| 国产草草影院18成年视频| 国产99热| 国产成人精品无码一区二| 亚洲成a人片| 亚洲天堂2014| 亚洲精品桃花岛av在线| 国产一级精品毛片基地| 久久96热在精品国产高清| 亚洲欧美成aⅴ人在线观看| 国产乱子伦一区二区=| 欧美成人看片一区二区三区 | 亚洲最新网址| 国产午夜无码专区喷水| 国产精品女人呻吟在线观看| 国产丝袜无码精品| 日本欧美视频在线观看| 久热精品免费| 亚洲最大情网站在线观看| 午夜成人在线视频| 成年人免费国产视频| 九九九九热精品视频| 欧美视频免费一区二区三区| 亚洲天堂日本| 热99精品视频| 五月婷婷导航| 色婷婷成人| 亚洲精品亚洲人成在线| 在线观看国产精美视频| 无码免费视频| 国产精品视频久| 黄色国产在线| 亚洲综合中文字幕国产精品欧美| 欧美日韩精品在线播放| 亚洲日韩久久综合中文字幕| 久久性视频|