王 征,羅寧昭,聶 冬
?
基于STM32F7的具有3CAN2以太功能的船用監(jiān)控屏的設(shè)計
王 征1,羅寧昭2,聶 冬3
(1. 海軍駐廣州某軍代室,廣州 51000;2. 海軍工程大學(xué)武漢 430033; 3. 海軍駐722所軍事代表室,武漢 430070)
本文結(jié)合船用電氣設(shè)備雙冗余通信的實(shí)際需要,以高性能的STM32F767單片機(jī)為硬件基礎(chǔ),該單片機(jī)含有3個CAN接口和1個Ethernet接口,將一個UART接口用IPort-3轉(zhuǎn)換成Ethernet接口,用輕量級TCP/IP管理工具lwIP來管理Ethernet,顯示采用7寸RGB屏,最終達(dá)到預(yù)期設(shè)計要求。
雙冗余 STM32F767 CAN Ethernet
現(xiàn)代船舶為簡化系統(tǒng)結(jié)構(gòu),通常采用全船統(tǒng)一的平臺網(wǎng)完成設(shè)備之間的通信,設(shè)計要求電力系統(tǒng)設(shè)備對外通過雙冗余CAN網(wǎng)和雙冗余以太網(wǎng)進(jìn)行數(shù)據(jù)通信。同時由于設(shè)備內(nèi)部也是使用CAN總線進(jìn)行通訊行,這就要求設(shè)備至少具備兩個CAN接口和兩個Ethernet接口,接口要求高。傳統(tǒng)MCU一般不具備多種接口,同時考慮到大流量數(shù)據(jù)的通信和穩(wěn)定性,選用高性能的STM32F767,用ZLG公司的IPort-3將一個UART接口轉(zhuǎn)換為Ethernet接口,實(shí)現(xiàn)3CAN2以太,顯示屏采用ATK-7’RGBLCD V1.3,分辨率800*480,系統(tǒng)硬件接口簡化圖如圖1所示。
CAN通信收發(fā)芯片采用ADM3053,進(jìn)行完全隔離的CAN通信;Ethernet通信收發(fā)芯片采用LAN8720A,高性能低功耗,采用RMII接口,集成10/100 MBps自適應(yīng)以太網(wǎng)速率;ATK公司的ATK7084屏幕可以跟STM32F767直接接駁,使用方便穩(wěn)定;設(shè)計四個按鈕進(jìn)行監(jiān)控屏界面的功能控制;加裝紐扣電池,可以掉電保存數(shù)據(jù);一路JTAG調(diào)試接口,制作好的電路板實(shí)物如圖2所示。
圖2 電路板實(shí)物
ST公司推出圖形化編程工具HALCOGEN,可以節(jié)約部分基礎(chǔ)代碼的開發(fā)時間,使用STM32CubeMX進(jìn)行基礎(chǔ)代碼的配置,包括CAN、UART、IO口、時鐘等,配置完后可以直接使用三路CAN,在兩路CAN冗余通信方面進(jìn)行修改;關(guān)于將UART通過IPort-3轉(zhuǎn)換成Ethernet的程序可以參考ZLG的官方程序進(jìn)行修改;以太網(wǎng)部分較前兩部分比較復(fù)雜,因?yàn)镠ALCOGEN代碼生成器工具只能生成基礎(chǔ)的以太網(wǎng)配置代碼,這其中是不包含協(xié)議棧。TI提供的資源里已經(jīng)有LwIP協(xié)議棧在該型芯片上的移植,所以采取LwIP協(xié)議棧實(shí)現(xiàn)以太網(wǎng)模塊。
LwIP部分:LwIP是一個小型開源的TCP/IP協(xié)議棧。完成移植之后的LwIP協(xié)議棧不需要了解底層的函數(shù)信息,只需要對LwIP協(xié)議棧中的需要的函數(shù)進(jìn)行調(diào)用就可以完成以太網(wǎng)通信。由于只用到UDP通信的部分,因此只對該部分進(jìn)行簡單地說明:
lwIPInit():對LwIP協(xié)議棧進(jìn)行初始化。下面是初始化的程序說明:
u8 lwip_comm_init(void)
{ u8 retry=0;struct netif *Netif_Init_Flag; //調(diào)用netif_add()函數(shù)時的返回值, 用于判斷網(wǎng)絡(luò)初始化是否成功
struct ip_addr ipaddr; //ip地址
struct ip_addr netmask; //子網(wǎng)掩碼
struct ip_addr gw; //默認(rèn)網(wǎng)關(guān)
……}
LCD部分:初始化對數(shù)值、長度、筆色顏色、背景色等進(jìn)行設(shè)置。
IPort-3部分:由于IPort-3可以提供TCP Server, TCP Client, UDP 和 Real COM driver 等多種工作模式,因此需要對模塊進(jìn)行一定的設(shè)置,使該模塊工作在UDP模式并將收到的數(shù)據(jù)發(fā)向指定的IP和端口。IPort-3可以通過網(wǎng)線與電腦相連,在電腦上安裝ZNetCom軟件就可以通過圖像化的交互完成對IPort-3的設(shè)置。
主程序?qū)⒏鞑糠止δ芙M合在一起。
利用STM32的內(nèi)部以太網(wǎng)MAC+外置PHY實(shí)現(xiàn)網(wǎng)絡(luò)連接。本設(shè)備開啟了LWIP的DHCP功能,可以自動從路由器獲取IP地址,也可以關(guān)閉DHCP,使用默認(rèn)靜態(tài)IP地址,默認(rèn)靜態(tài)IP地址為192.168.1.30,當(dāng)聯(lián)網(wǎng)完成以后可以在電腦上向開發(fā)板發(fā)送Ping包來測試網(wǎng)絡(luò)是否通暢。使用ULINK2下載和調(diào)試程序,電腦端使用ZNetCom進(jìn)行以太網(wǎng)通訊冗余通信測試,在屏幕上顯示通信連接結(jié)果。
圖3 通信連接結(jié)果
CAN部分的測試?yán)肸LG公司的CANAnalysII調(diào)試工具,電腦端使用CANTest測試軟件,速率500K,對每路CAN進(jìn)行通信測試,軟件接收到的CAN數(shù)據(jù)幀如圖4。
序號傳輸方向時間標(biāo)識幀ID幀格式幀類型數(shù)據(jù)長度數(shù)據(jù)(HEX) 250接收11:28:53.458.018數(shù)據(jù)幀標(biāo)準(zhǔn)幀0x0844 45 46 47 48 49 4a 4b 251接收11:28:53.692.018數(shù)據(jù)幀標(biāo)準(zhǔn)幀0x0845 46 47 48 49 4a 4b 4c 252接收11:28:53.911.018數(shù)據(jù)幀標(biāo)準(zhǔn)幀0x0846 47 48 49 4a 4b 4c 4d 253接收11:28:53.130.018數(shù)據(jù)幀標(biāo)準(zhǔn)幀0x0847 48 49 4a 4b 4c 4d 4e 254接收11:28:53.348.018數(shù)據(jù)幀標(biāo)準(zhǔn)幀0x0848 49 4a 4b 4c 4d 4e 4f 255接收11:28:53.567.018數(shù)據(jù)幀標(biāo)準(zhǔn)幀0x0849 4a 4b 4c 4d 4e 4f 50
使用這樣一套硬件和軟件解決方案可以很好的實(shí)現(xiàn)雙冗余的以太網(wǎng)通信和CAN通信,并保證有獨(dú)立的一個CAN網(wǎng)絡(luò)進(jìn)行內(nèi)部通信,同時可以設(shè)計多個按鍵進(jìn)行操作,界面除了在程序上純畫圖之外還可以使用GUI進(jìn)行圖形化界面構(gòu)圖,豐富界面,達(dá)到新型船舶監(jiān)控屏的使用要求。
[1] 丁瑞等. DSP下CAN總線雙冗余通信機(jī)制的設(shè)計與實(shí)現(xiàn)[J]. 計算機(jī)工程與設(shè)計, 2014,(08_.
[2] 劉力軍等. 雙以太網(wǎng)冗余通信系統(tǒng)的設(shè)計與應(yīng)用[J].工業(yè)控制計算機(jī), 2005, (07).
[3] 王海平. 雙冗余CAN總線在船舶通信中的可靠性分析[J]. 中國新通信, 2015, (09).
Design of Marine Monitoring Screen with 3CAN2 Ethernet Function of Ship Based on STM32F7
Wang Zheng, Luo Ningzhao, Nie Dong
(1.Naval Representatives Office in Guangzhou, Guangzhou 510000, China; 2.Naval Univ. of Engineering, Wuhan430033, China; Naval Representatives Office in 722 Research Institute, Wuhan 430070, China)
TP39
A
1003-4862(2017)12-0027-02
2017-09-15
王征(1978-),博士,工程師,研究方向:電氣工程。E-mail: liyihs2013@163.com