王 征,羅寧昭,聶 冬
?
基于STM32F7的具有3CAN2以太功能的船用監控屏的設計
王 征1,羅寧昭2,聶 冬3
(1. 海軍駐廣州某軍代室,廣州 51000;2. 海軍工程大學武漢 430033; 3. 海軍駐722所軍事代表室,武漢 430070)
本文結合船用電氣設備雙冗余通信的實際需要,以高性能的STM32F767單片機為硬件基礎,該單片機含有3個CAN接口和1個Ethernet接口,將一個UART接口用IPort-3轉換成Ethernet接口,用輕量級TCP/IP管理工具lwIP來管理Ethernet,顯示采用7寸RGB屏,最終達到預期設計要求。
雙冗余 STM32F767 CAN Ethernet
現代船舶為簡化系統結構,通常采用全船統一的平臺網完成設備之間的通信,設計要求電力系統設備對外通過雙冗余CAN網和雙冗余以太網進行數據通信。同時由于設備內部也是使用CAN總線進行通訊行,這就要求設備至少具備兩個CAN接口和兩個Ethernet接口,接口要求高。傳統MCU一般不具備多種接口,同時考慮到大流量數據的通信和穩定性,選用高性能的STM32F767,用ZLG公司的IPort-3將一個UART接口轉換為Ethernet接口,實現3CAN2以太,顯示屏采用ATK-7’RGBLCD V1.3,分辨率800*480,系統硬件接口簡化圖如圖1所示。
CAN通信收發芯片采用ADM3053,進行完全隔離的CAN通信;Ethernet通信收發芯片采用LAN8720A,高性能低功耗,采用RMII接口,集成10/100 MBps自適應以太網速率;ATK公司的ATK7084屏幕可以跟STM32F767直接接駁,使用方便穩定;設計四個按鈕進行監控屏界面的功能控制;加裝紐扣電池,可以掉電保存數據;一路JTAG調試接口,制作好的電路板實物如圖2所示。

圖2 電路板實物
ST公司推出圖形化編程工具HALCOGEN,可以節約部分基礎代碼的開發時間,使用STM32CubeMX進行基礎代碼的配置,包括CAN、UART、IO口、時鐘等,配置完后可以直接使用三路CAN,在兩路CAN冗余通信方面進行修改;關于將UART通過IPort-3轉換成Ethernet的程序可以參考ZLG的官方程序進行修改;以太網部分較前兩部分比較復雜,因為HALCOGEN代碼生成器工具只能生成基礎的以太網配置代碼,這其中是不包含協議棧。TI提供的資源里已經有LwIP協議棧在該型芯片上的移植,所以采取LwIP協議棧實現以太網模塊。
LwIP部分:LwIP是一個小型開源的TCP/IP協議棧。完成移植之后的LwIP協議棧不需要了解底層的函數信息,只需要對LwIP協議棧中的需要的函數進行調用就可以完成以太網通信。由于只用到UDP通信的部分,因此只對該部分進行簡單地說明:
lwIPInit():對LwIP協議棧進行初始化。下面是初始化的程序說明:
u8 lwip_comm_init(void)
{ u8 retry=0;struct netif *Netif_Init_Flag; //調用netif_add()函數時的返回值, 用于判斷網絡初始化是否成功
struct ip_addr ipaddr; //ip地址
struct ip_addr netmask; //子網掩碼
struct ip_addr gw; //默認網關
……}
LCD部分:初始化對數值、長度、筆色顏色、背景色等進行設置。
IPort-3部分:由于IPort-3可以提供TCP Server, TCP Client, UDP 和 Real COM driver 等多種工作模式,因此需要對模塊進行一定的設置,使該模塊工作在UDP模式并將收到的數據發向指定的IP和端口。IPort-3可以通過網線與電腦相連,在電腦上安裝ZNetCom軟件就可以通過圖像化的交互完成對IPort-3的設置。
主程序將各部分功能組合在一起。
利用STM32的內部以太網MAC+外置PHY實現網絡連接。本設備開啟了LWIP的DHCP功能,可以自動從路由器獲取IP地址,也可以關閉DHCP,使用默認靜態IP地址,默認靜態IP地址為192.168.1.30,當聯網完成以后可以在電腦上向開發板發送Ping包來測試網絡是否通暢。使用ULINK2下載和調試程序,電腦端使用ZNetCom進行以太網通訊冗余通信測試,在屏幕上顯示通信連接結果。

圖3 通信連接結果
CAN部分的測試利用ZLG公司的CANAnalysII調試工具,電腦端使用CANTest測試軟件,速率500K,對每路CAN進行通信測試,軟件接收到的CAN數據幀如圖4。

序號傳輸方向時間標識幀ID幀格式幀類型數據長度數據(HEX) 250接收11:28:53.458.018數據幀標準幀0x0844 45 46 47 48 49 4a 4b 251接收11:28:53.692.018數據幀標準幀0x0845 46 47 48 49 4a 4b 4c 252接收11:28:53.911.018數據幀標準幀0x0846 47 48 49 4a 4b 4c 4d 253接收11:28:53.130.018數據幀標準幀0x0847 48 49 4a 4b 4c 4d 4e 254接收11:28:53.348.018數據幀標準幀0x0848 49 4a 4b 4c 4d 4e 4f 255接收11:28:53.567.018數據幀標準幀0x0849 4a 4b 4c 4d 4e 4f 50
使用這樣一套硬件和軟件解決方案可以很好的實現雙冗余的以太網通信和CAN通信,并保證有獨立的一個CAN網絡進行內部通信,同時可以設計多個按鍵進行操作,界面除了在程序上純畫圖之外還可以使用GUI進行圖形化界面構圖,豐富界面,達到新型船舶監控屏的使用要求。
[1] 丁瑞等. DSP下CAN總線雙冗余通信機制的設計與實現[J]. 計算機工程與設計, 2014,(08_.
[2] 劉力軍等. 雙以太網冗余通信系統的設計與應用[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