?

STM32F107平臺Modbus協議的嵌入式網關設計

2019-01-17 03:11,,
單片機與嵌入式系統應用 2018年12期
關鍵詞:框圖電路設計以太網

,,

(陸軍裝甲兵學院 信息通信系,北京 100072)

引 言

隨著工業通信技術的不斷發展,基于現場總線技術的控制系統被廣泛應用于工業領域。Modbus協議作為一種能夠有效控制實時網絡和分布式系統的現場總線技術,以其運行穩定且實時性好等優點被越來越多地應用于工業系統中。企業信息化進程的不斷發展對實現企業上層管理網絡與現場控制網絡的無縫連接提出了更高的要求。在工業自動控制領域,工業系統的網絡化通信模式已發展成為一種趨勢,工業通信技術正朝著智能化和網絡化的方向不斷發展。特別是近幾年來,短程無線通信技術的崛起,使其也逐步滲透到工業控制領域。

如何將現場控制設備與以太網互聯,完成異構網絡之間的數據傳輸,進而實現底層生產與上層管理的緊密集成是當前研究的熱點?;诖?,本文提出了一種基于Modbus協議的工業有線/無線混合網絡傳輸方案,設計了嵌入式網關的軟硬件以完成Modbus協議與TCP/IP協議之間的轉換,實現了Modbus協議在現場總線網和以太網之間的互聯。

1 系統總體設計

Modbus協議是屬于應用層的通信協議,它與物理層的設備和電器接口無關,既支持傳統的RS232/RS485通信標準,也支持以太網通信標準。所以根據物理層網絡的不同,Modbus協議被分成串行鏈路版本和運行在以太網的Modbus/TCP版本。

網關又稱網間連接器、協議轉換器,在采用不同體系結構或協議的網絡之間進行互通時,提供協議轉換、數據交換等網絡兼容功能的設施。在本設計中,網關的主要功能是將串行鏈路版的Modbus現場總線與基于TCP/IP協議的以太網連接起來。其總體結構框圖如圖1所示。

圖1 總體結構框圖

本設計以STM32F107作為主控制器芯片,其上運行嵌入式實時操作系統RT-Thread,負責對各任務進程進行調度,其上加載的LwIP協議棧完成以太網通信相關任務。對外根據具體總線的類型選擇收發芯片,采用物理層收發芯片結合RJ-45接口和WiFi芯片完成以太網有線和無線的通信任務。

2 硬件設計

2.1 硬件總體設計

系統硬件總體設計框圖如圖2所示。

圖2 系統總體硬件設計框圖

系統采用意法半導體公司基于ARM Cortex-M3內核的微控制芯片STM32F107VCT6作為核心處理器。該芯片是一款互聯型微控制器,性價比高,內核、系統和存儲器體積??;其工作頻率高達72 MHz,內置高速存儲器(256 KB的閃存和64 KB的SRAM),具備豐富的I/O接口及外設資源。該芯片的運行速度可滿足系統的實時性多任務需求,豐富的對外通信接口可滿足多種應用場合的需求??傮w設計包括基本的核心控制芯片級周邊外設、電源模塊、各通信接口、燒錄和調試程序的JTAG接口;FLASH模塊主要保存各種需掉電保存的參數配置信息;RTC實時時鐘模塊主要在掉電時利用鋰電池供電,保持時鐘與其他系統同步。

2.2 STM32F107VCT6核心控制芯片電路設計

本設計的核心控制芯片STM32F107VCT6芯片為LQFP100封裝,根據芯片手冊,采用25 MHz溫補晶振作為基準時鐘源,采用32 768 kHz晶振作為外部低速時鐘源,啟動方式配置為上電直接從內部啟動運行(BOOT0引腳下拉接地),采用多種濾波電容把交流噪聲旁路到地,起到穩定電壓的作用,在PCB布板時需要把電容放置在距離芯片電源引腳盡可能近的地方,以達到更好的濾波效果。該芯片核心工作電壓為+3.3 V,由電源電路提供。程序的燒錄和調試采用了JTAG模式中的SWJ-DP模式。

2.3 電源模塊設計

電源模塊采用德州儀器的LM2596電源轉換芯片將+12 V電壓轉換為+5 V。電路設計中加入了保險絲、瞬態抑制二極管等元件對后端電路進行保護,防止接反短路。采用了電容、電感等降低電源電路的紋波噪聲,其設計如圖3所示。系統中所需要的+3.3 V電壓采用電壓轉換芯片ASM1117獲得,該芯片由LM2596產生的+5 V電壓轉換為+3.3 V,并在周邊加上各濾波電路,減少噪聲干擾。

圖3 電源模塊設計圖

2.4 有線以太網接口電路設計

STM32F107系列微控制器內部集成了高性能的以太網模塊,提供支持IEEE-802.3-2002的介質訪問控制器用于以太網通信,支持10 Mb/s和100 Mb/s兩種速率。該控制器內部集成兩個介質無關接口,分別是工業標準的介質無關接口(MII-有17路信號線,時鐘為25 MHz)和精簡的介質無關接口(RMII-9路信號線,時鐘為50 MHz)。

STM32F107需要一個外接物理接口設備(PHY)連接介質無關端口與物理局域網總線結合,實現以太網的功能。本設計選用的以太網物理層接口收發控制器是美國國家半導體公司生產的DP83848CVV單端物理層(PHY)芯片。該芯片能耗低、單路高速、魯棒性好、功能全,具有通用的網絡接口,支持MII(介質無關接口)和RMII(精簡介質無關接口),還支持10BASE-TX和100BASE-TX的以太網外設,可以兼容其他標準的以太網解決方案,通用性高,這樣可以使設計更加簡單靈活。

DP83848芯片配合RMII精簡標準接口提供的連接方案,能夠減少MAC與PHY接口的引腳數,使設計者在保持IEEE802.3規范所有特性的同時,也降低了系統設計的成本,因此該芯片能夠很好地滿足工業控制和工廠自動化,以及通用嵌入式系統的要求。正是因為如此,該芯片也是STM32系列互聯型控制器的推薦芯片型號,該接口芯片與微控制器連接設計如圖4所示。

圖4 DP83848與微控制器連接設計圖

本設計選擇與網絡芯片連接的RJ45接口器件是集隔離變壓器于一體的連接座HR91105,連接座器件帶有黃綠指示燈,其連接關系設計如圖5所示。

2.5 無線以太網WiFi接口電路設計

本設計采用ESP8266作為提供無線以太網連接的接口芯片。ESP8266包含Tensilica L106超低功耗、32位精簡模式的CPU,主頻為80 MHz,內置50 KB SRAM高速緩存,16 MB ROM(外擴FLASH芯片),支持ADC/PWM,可支持UART、SDIO、SPI、I2C等多種總線傳輸模式,支持802.11b/g/n協議,發射頻率范圍為2.4~2.5 GHz,最大發射功率可達+20 dBm。

圖5 RJ45端口設計

本設計中ESP8266芯片通過USART串行接口與STM32F107進行通信,完成數據交互,通過SPI總線與FLASH芯片(W25Q80)完成通信, FLASH芯片可保存一些參數配置信息。采用26 MHz高精度溫補晶振為其提供時鐘源,其電路設計如圖6所示。其中ESP8266的天線采用了SMA底座、阻抗匹配為50 Ω的外置射頻天線,在PCB布板時,要注意芯片ANT引腳到射頻底座之間的走線,要盡可能短,如有拐彎的需要,要盡量設計成大于90°的弧形走線,以降低功率衰減,獲得更好的無線通信質量。

圖6 無線WiFi接口電路設計

2.6 串行接口電路設計

本設計中的串行接口主要是RS-232接口和RS-485接口。設計中采用MAX3232作為RS-232接口電路的電平轉換芯片。該芯片與STM32F107的串口1和串口4相連,將TTL電平轉換為符合RS-232標準的電平,實現和其他串行接口設備的通信。

采用ADM2483完成STM32的串口TTL電平和RS-485差分電平之間的轉換。由于485總線采用單工通信方式,在此單獨使用STM32的一根引腳對ADM2483的收發進行切換控制。

2.7 CAN總線接口電路設計

CAN總線作為目前較為流行的控制器局域網,廣泛應用在多種行業。本設計考慮該網關的未來功能擴展,在此將STM32F107的CAN總線控制功能也設計出來,作為預留接口。STM32F107內部包括兩個CAN控制器,分別連接兩個CAN收發器實現數據的傳輸功能。CAN收發器是CAN控制器和物理總線之間的接口,為CAN控制器提供差分接收、發送功能,本設計選用TJA1050作為CAN收發器,其設計電路如圖7所示。

圖7 CAN總線接口電路設計

3 軟件設計

嵌入式系統大多對實時性有較高的要求,本設計在嵌入式實時操作系統RT-Thread完成對各項任務的調度。該系統運行于STM32F107核心控制芯片上。在此對其移植過程進行簡要介紹,RT-Thread是一款國產的嵌入式開源RTOS,支持NXP、ST等多家公司的ARM架構芯片,其結構框圖如圖8所示。

圖8 RT-Thread結構框圖

在具體硬件平臺和板級支持包(BSP)基礎之上,RT-Thread構建了一個內核對象管理系統,系統通過它對內核對象進行統一管理,這些對象包括線程、內存塊、信號量、互斥量等。RT-Thread的外圍組件包括RT-GUI、文件系統、Shell和LwIP。其中,LwIP(Light Weight IP,輕量化IP協議)是應用于嵌入式系統的TCP/IP協議棧,它實現了完整的TCP/IP協議,但是占用資源較少。RT-Thread將其作為默認的TCP/IP協議棧,并進行了進一步優化,可以供用戶直接使用,是完成本設計中Modbus協議與TCP/IP協議之間轉換的重要組成部分。Finish Shell是RT-Thread提供的一個很方便的應用,主要用來調試、查看系統信息。

3.1 RT-Thread實時操作系統移植

為了讓RT-Thread能夠在STM32F107核心控制芯片上正常運行,必須進行移植。RT-Thread支持多種開發環境,本設計采用Keil MDK4。首先在RT-Thread的官網根據實際的硬件開發平臺下載對應的版本,本設計使用RT-Thread2.0.0穩定版,其BSP(板級支持包)含有所支持的各平臺的移植代碼(根據實際情況可將其他無關平臺的內容刪除),內部包含有兩個匯編文件:一個是系統啟動初始化文件,另一個是線程進行上下文切換的文件,其他都是C 源文件。在移植時,選好開發平臺后僅需修改rtconfig.h 文件使能本設計中要使用到的組件LwIP和Finish Shell (其他組件可根據需要配置) 。

3.2 RT-Thread初始化

MDK的用戶程序入口是main()函數,main()函數調用rt_thread_startup()函數(RT-Thread多平臺下的統一入口點),函數中包含了RT-Thread操作系統的啟動流程:初始化系統相關的硬件,初始化定時器、調度器等系統組件,初始化系統設備,初始化各個應用線程并啟動調度器。其中用戶代碼入口位置是rt_application_init(),在這個函數中可以初始化用戶應用程序的線程,當打開調度器后,用戶線程也將得到執行。在本設計中,主要根據硬件平臺具體使用、連接關系,初始化用到的全部外設通信接口和工作狀態指示燈。

3.3 LwIP協議棧的初始化及應用

LwIP由協議的實現模塊(IP、ICMP、TCP、UDP)、操作系統模擬層、緩沖與內存管理模塊、網絡接口函數和API接口函數等獨立模塊組成。本設計中采用TCP協議完成數據通信,利用LwIP提供的輕型BSD Socket API接口函數調用實現,其中為大量已有的網絡應用程序提供了兼容接口。

結 語

猜你喜歡
框圖電路設計以太網
基于1500以太網養豬場的智能飼喂控制系統的設計與實現
捷豹I-PACE純電動汽車高壓蓄電池充電系統(三)
Altium Designer在電路設計中的應用
負反饋放大電路設計
電路圖2017年凱迪拉克XT5
算法框圖的補全
談實時以太網EtherCAT技術在變電站自動化中的應用
基于UC3843的60W升壓電路設計
一種90W高功率以太網供電系統的設計
淺談EPON與工業以太網在貴遵高速公路中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合