国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的以太網(wǎng)接口轉(zhuǎn)多串口透傳模塊設(shè)計(jì)

2016-07-23 08:27:22趙智增馮春鵬
山西電子技術(shù) 2016年2期
關(guān)鍵詞:串口

趙智增,馮春鵬

(北方工業(yè)大學(xué) 機(jī)械與材料工程學(xué)院,北京 100144)

?

基于STM32的以太網(wǎng)接口轉(zhuǎn)多串口透傳模塊設(shè)計(jì)

趙智增,馮春鵬

(北方工業(yè)大學(xué) 機(jī)械與材料工程學(xué)院,北京 100144)

摘要:針對RS-232串口數(shù)據(jù)傳輸距離受限、傳輸速率低和以太網(wǎng)接口轉(zhuǎn)單串口模塊的相對成本較高等缺點(diǎn),設(shè)計(jì)了一種基于STM32的以太網(wǎng)接口轉(zhuǎn)多串口嵌入式模塊。該模塊集成10/100 M自適應(yīng)以太網(wǎng)接口,串口通信速率高達(dá)230 kbps,該模塊使用LwIP(Light Weight IP)協(xié)議,在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,采用DMA實(shí)現(xiàn)了接受不定長數(shù)據(jù)。該轉(zhuǎn)換模塊具有高性價(jià)比且穩(wěn)定可靠,可以方便地實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備與多個(gè)串口設(shè)備之間數(shù)據(jù)的透明傳輸。

關(guān)鍵詞:STM32;以太網(wǎng)接口;串口;LwIP;DMA

在工控領(lǐng)域、安全防護(hù)領(lǐng)域、機(jī)房監(jiān)控領(lǐng)域、門禁醫(yī)療自動化設(shè)備領(lǐng)域、智能交通領(lǐng)域、智能樓宇領(lǐng)域、測量儀表及環(huán)境動力監(jiān)控系統(tǒng)當(dāng)中,使用了大量的傳感器、PLC、控制器、讀卡器、檢測器等RS-232串口設(shè)備,在串口設(shè)備之間以及串口設(shè)備與PC之間都是通過RS-232串口進(jìn)行數(shù)據(jù)通信、數(shù)據(jù)交換和數(shù)據(jù)管理。隨著社會對系統(tǒng)穩(wěn)定性需求、系統(tǒng)數(shù)據(jù)流量需求以及更大系統(tǒng)需求的不斷發(fā)展,使得現(xiàn)有的RS-232串口通信,已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足社會的需求。加之以太網(wǎng)技術(shù)的不斷發(fā)展和其自身的優(yōu)越性,在中國乃至全世界,幾乎絕大部分局域網(wǎng)都采用以太網(wǎng)技術(shù),使以太網(wǎng)絡(luò)得以普及。與RS-232串口通信相比較,以太網(wǎng)絡(luò)具有通信距離遠(yuǎn),而RS-232串口通信的距離只有15 m。由于以太網(wǎng)絡(luò)是基于復(fù)雜環(huán)境設(shè)計(jì)的,具有自動糾錯功能,所以通信質(zhì)量非常穩(wěn)定,不受外部環(huán)境干擾[1]。而RS-232串口通信則抗干擾能力差,容易出錯。由于以上的種種因素,需要將RS-232接口設(shè)備連接到網(wǎng)絡(luò)上已是大勢所趨,要讓RS-232串口設(shè)備上擁有以太網(wǎng)絡(luò)外設(shè)需要研發(fā)和整合CPU,DSP,TCP/IP協(xié)議等各種軟硬件,需要投入巨大的人力、物力和財(cái)力,對這些設(shè)備的大批量改造顯然不是一蹴而就的,因此將網(wǎng)口轉(zhuǎn)化為串口模塊應(yīng)運(yùn)而生。現(xiàn)有的以太網(wǎng)轉(zhuǎn)串口模塊為以太網(wǎng)轉(zhuǎn)單串口模塊,資源利用率低,相對成本高。本文提出了一種基于STM32的以太網(wǎng)接口轉(zhuǎn)多串口透傳模塊,通過設(shè)計(jì)多路串口的傳輸,提高了資源的利用率,降低了相對成本。

1系統(tǒng)總體方案

模塊的核心功能為方便地使串口設(shè)備連接到以太網(wǎng)上,實(shí)現(xiàn)串口設(shè)備的網(wǎng)絡(luò)化管理。模塊的處理核心是32位STM32微控制器,具有配置靈活,可擴(kuò)展的特點(diǎn)。使用ENC28J60以太網(wǎng)控制器進(jìn)行底層網(wǎng)絡(luò)協(xié)議處理,然后在STM32中用軟件實(shí)現(xiàn)以太網(wǎng)與串口設(shè)備之間的協(xié)議轉(zhuǎn)換(即在底層完成以太網(wǎng)幀數(shù)據(jù)和串行幀數(shù)據(jù)格式的轉(zhuǎn)換),實(shí)現(xiàn)以太網(wǎng)與串口設(shè)備的無縫連接,采用的網(wǎng)絡(luò)協(xié)議是LwIP協(xié)議,總體方案如圖1。

圖1 轉(zhuǎn)換模塊總體方案

2硬件設(shè)計(jì)

本文設(shè)計(jì)的以太網(wǎng)接口轉(zhuǎn)串口模塊由以太網(wǎng)接口模塊電路、系統(tǒng)時(shí)鐘電路、串口模塊電路、復(fù)位電路、存儲模塊電路、電源管理模塊電路和微控制器模塊電路組成。以太網(wǎng)接口接收的網(wǎng)絡(luò)信號經(jīng)轉(zhuǎn)換模塊轉(zhuǎn)換為串口信號與其它串口設(shè)備或上位機(jī)完成通信,復(fù)位電路使控制模塊電路恢復(fù)到初始化狀態(tài),電源管理模塊分別為復(fù)位電路和信號轉(zhuǎn)換電路供電。

2.1STM32控制模塊

本文設(shè)計(jì)的以太網(wǎng)接口轉(zhuǎn)多串口模塊以32位的STM32微控制器為硬件設(shè)計(jì)的核心,采用意法半導(dǎo)體公司的STM32F103“增強(qiáng)型”系列STM32F103VC芯片,其突出特點(diǎn)是高性能、低成本、低功耗,時(shí)鐘頻率高達(dá)72 MHz。STM32系列的電源電壓2 V~3.6 V,擁有三種低功耗模式:睡眠、停機(jī)、待機(jī)模式。另外,它內(nèi)部集成與IEEE1149.1國際標(biāo)準(zhǔn)測試協(xié)議兼容的JTAG接口,對芯片內(nèi)部進(jìn)行測試,也可以通過JTAG接口實(shí)現(xiàn)對Flash等器件的編程,可以實(shí)現(xiàn)以后的固件升級。該模塊的主要工作為完成數(shù)據(jù)的收發(fā)和數(shù)據(jù)格式的轉(zhuǎn)換,以太網(wǎng)控制驅(qū)動,實(shí)現(xiàn)以太網(wǎng)接口與串口的無縫連接。電路原理圖如圖2所示。

圖2 STM32控制模塊電路原理圖

2.2電源管理模塊

該模塊采用5 V開關(guān)電源供電,串口模塊、以太網(wǎng)接口模塊、存儲模塊和STM32控制模塊工作電壓均為3.3 V,需要設(shè)計(jì)電路將5 V電壓轉(zhuǎn)換為3.3 V電壓。為滿足串口模塊和以太網(wǎng)模塊的功耗需求,設(shè)計(jì)的3.3 V電壓輸出電流3 A,選取的芯片為LM1085,LM1058是一個(gè)低壓差正向電壓系列,有可調(diào)版本和固定版本,設(shè)計(jì)用于提供3 A輸出電流且工作壓差可低至1 V。

2.3以太網(wǎng)接口模塊

該模塊采用帶有標(biāo)準(zhǔn)串行接口SPI的28腳獨(dú)立以太網(wǎng)控制器ENC28J60,ENC28J60兼容IEEE802.3協(xié)議,支持全雙工和半雙工模式,內(nèi)部集成了物理層,采用了一系列包過濾機(jī)制以對傳入數(shù)據(jù)包進(jìn)行限制。它還提供了一個(gè)內(nèi)部DMA模塊,用以實(shí)現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的IP校驗(yàn)和計(jì)算。兩個(gè)專用的引腳用于連接LED,進(jìn)行網(wǎng)絡(luò)活動狀態(tài)指示。該模塊的主要功能是完成數(shù)據(jù)以太網(wǎng)幀格式的封裝和拆封裝以及信號的變換,使用ENC28J60滿足系統(tǒng)的設(shè)計(jì)要求,簡化相關(guān)設(shè)計(jì),大大減小了占板空間,降低開發(fā)成本,提高系統(tǒng)的可靠性。以太網(wǎng)接口模塊電路原理圖如圖3所示。

圖3 以太網(wǎng)接口模塊電路原理圖

2.4串口模塊

該模塊實(shí)現(xiàn)串口設(shè)備之間或串口設(shè)備與上位機(jī)之間的通信。URAT的TX、RX引腳均為TTL電平,RS-232為負(fù)邏輯電平,兩者的高低電平的值不一樣,所以互相連接時(shí)需要電平轉(zhuǎn)換,該模塊設(shè)計(jì)采用MAX232完成它們之間的電平轉(zhuǎn)換和驅(qū)動。串口模塊電路原理圖如圖4所示。

圖4 串口模塊電路原理圖

3軟件設(shè)計(jì)

軟件完成的主要功能:硬件和協(xié)議棧初始化,設(shè)置轉(zhuǎn)換模塊的網(wǎng)絡(luò)接口,建立應(yīng)用進(jìn)程;將來自以太網(wǎng)接口的數(shù)據(jù)轉(zhuǎn)換成串口數(shù)據(jù),發(fā)送到串口設(shè)備;將來自串口的數(shù)據(jù)轉(zhuǎn)換成以太網(wǎng)接口數(shù)據(jù),進(jìn)行發(fā)送。

3.1關(guān)鍵技術(shù)

以太網(wǎng)接口轉(zhuǎn)串口實(shí)質(zhì)是TCP/IP到串口的協(xié)議轉(zhuǎn)換。涉及關(guān)鍵技術(shù):TCP/IP的工作模式問題、串口分幀技術(shù)、九位技術(shù)[2]。

3.1.1工作模式問題

以太網(wǎng)接口轉(zhuǎn)串口,并不是物理層和數(shù)據(jù)鏈路層的簡單轉(zhuǎn)化,而是將串口數(shù)據(jù)作為TCP/IP的應(yīng)用層數(shù)據(jù),用TCP/IP封裝傳輸?shù)姆绞?。TCP/IP的工作模式:TCP服務(wù)端模式、TCP客戶端模式、UDP模式,工作模式的不同關(guān)系到連接、關(guān)閉、監(jiān)聽等,這是以太網(wǎng)接口轉(zhuǎn)串口需要處理的部分。

3.1.2串口分幀技術(shù)

以太網(wǎng)數(shù)據(jù)是以數(shù)據(jù)包為單位發(fā)送的,而串口是可以連續(xù)不斷發(fā)送的。這就關(guān)系到將多長的串口數(shù)據(jù)打包后作為一個(gè)以太網(wǎng)數(shù)據(jù)包發(fā)送的問題。

3.1.3九位技術(shù)

以太網(wǎng)數(shù)據(jù)是字節(jié)為單位,每個(gè)字節(jié)都是8位,但是串口數(shù)據(jù)則是可能出現(xiàn)9位,第9位常常用于區(qū)分是地址幀還是數(shù)據(jù)幀,1表示地址幀0表示數(shù)據(jù)幀,以太網(wǎng)接口轉(zhuǎn)串口后怎樣匹配是一個(gè)關(guān)鍵技術(shù)。

3.2LwIP協(xié)議棧的移植

基于STM32的以太網(wǎng)接口轉(zhuǎn)串口不但要實(shí)現(xiàn)TCP/IP協(xié)議,還要實(shí)現(xiàn)與串口交換數(shù)據(jù)。本文設(shè)計(jì)的轉(zhuǎn)換模塊采用LwIP精簡協(xié)議,LwIP協(xié)議是一個(gè)小型開源的TCP/IP的協(xié)議棧,在有無操作系統(tǒng)的環(huán)境下都可以運(yùn)行,在保留了TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用。利用LwIP協(xié)議實(shí)現(xiàn)的各種功能分解成各自獨(dú)立的任務(wù),通過優(yōu)先級的調(diào)度,使各項(xiàng)有條不紊的運(yùn)行[3]。為了保證系統(tǒng)的實(shí)時(shí)性和降低實(shí)現(xiàn)的難度,各任務(wù)之間采用信號量、消息隊(duì)列、消息郵箱等進(jìn)行通信。LwIP協(xié)議棧將頂層應(yīng)用層之間的所有協(xié)議集和底層硬件驅(qū)動都封裝在一個(gè)庫里,實(shí)現(xiàn)了在編寫程序過程中最大的通用性[4]。協(xié)議棧完成網(wǎng)絡(luò)協(xié)議棧的四層功能:物理層對STM32進(jìn)行以太網(wǎng)控制器驅(qū)動;接口層通過ARP協(xié)議完成MAC的辨識;網(wǎng)絡(luò)層實(shí)現(xiàn)基本的網(wǎng)絡(luò)傳輸協(xié)議;網(wǎng)絡(luò)傳輸層管理數(shù)據(jù)傳輸。LwIP協(xié)議為數(shù)據(jù)通信提供了基礎(chǔ)。

3.3接收不定長數(shù)據(jù)的實(shí)現(xiàn)

STM32的UART具有收發(fā)可以使用的DMA,使用DMA發(fā)送數(shù)據(jù)時(shí)會告知發(fā)送的數(shù)據(jù)長度,按照發(fā)送長度發(fā)送就可以基本上不會遇到什么問題,但是使用DMA接收時(shí),有時(shí)數(shù)據(jù)并不是定長的,但是DMA只有在設(shè)定數(shù)據(jù)長度和接收數(shù)據(jù)長度相同時(shí)才可以觸發(fā)中斷,告訴STM32數(shù)據(jù)接收完畢。針對這一問題的解決方案是:一開始設(shè)置好DMA接收,把緩沖區(qū)長度設(shè)置為幀最大長度,把RX連接到定時(shí)器管腳的輸入端,并且一開始設(shè)置輸入在使能引腳下降沿中斷,當(dāng)發(fā)送幀的第一個(gè)字節(jié)時(shí),起始位是低電平,空閑時(shí),UART是高電平,滿足條件,禁止中斷,同時(shí)開啟定時(shí)器,該定時(shí)器工作在復(fù)位模式,上升沿復(fù)位,并設(shè)置好定時(shí)器輸出比較值為超時(shí)時(shí)間,在傳輸后面字節(jié)時(shí),肯定會有高低電平出現(xiàn),即便傳輸?shù)氖?x00,0xFF,雖然UART數(shù)據(jù)區(qū)不變,但是都為0或都為1,由于起始位是低電平,停止位是高電平,肯定會有上升沿,這樣定時(shí)器會處于一直復(fù)位的狀態(tài),輸出定時(shí)器的計(jì)數(shù)器一直達(dá)不到輸出比較值,當(dāng)一幀傳輸結(jié)束,定時(shí)在最后一個(gè)字節(jié)復(fù)位后,如果沒有數(shù)據(jù)繼續(xù)到達(dá),就無法復(fù)位,那么計(jì)數(shù)器就只能計(jì)數(shù)到輸出比較值,這時(shí)發(fā)出中斷,在定時(shí)器中斷中可以計(jì)算出接收數(shù)據(jù)的長度,并且通知外部數(shù)據(jù)已接收完畢。工作過程如圖5所示,在串口傳輸起始位時(shí),首先產(chǎn)生外部中斷,開啟定時(shí)器,禁止外部中斷,只要串口上一直有數(shù)據(jù),定時(shí)器就會不停地復(fù)位,定時(shí)時(shí)間無法達(dá)到,當(dāng)串口上沒有數(shù)據(jù)時(shí),到超時(shí)時(shí)間后定時(shí)器產(chǎn)生中斷,然后讀出接收的數(shù)據(jù)長度,開啟外部中斷,進(jìn)入下一個(gè)周期。

圖5 接收不定長數(shù)據(jù)實(shí)現(xiàn)的工作過程圖

3.4系統(tǒng)軟件流程

當(dāng)轉(zhuǎn)換模塊上電啟動后,首先進(jìn)行的是系統(tǒng)的初始化,之后建立初始任務(wù),此時(shí)起始任務(wù)占用CPU資源。在初始任務(wù)中,建立網(wǎng)口轉(zhuǎn)串口數(shù)據(jù)處理任務(wù)。然后判斷以太網(wǎng)接口是否接收數(shù)據(jù),如果沒有數(shù)據(jù),重新判斷是否接收數(shù)據(jù),如果有數(shù)據(jù),將數(shù)據(jù)按照LwIP協(xié)議進(jìn)行處理,然后進(jìn)行協(xié)議轉(zhuǎn)換處理,最后將數(shù)據(jù)按串口數(shù)據(jù)的格式發(fā)送到串口,完成轉(zhuǎn)換任務(wù)。系統(tǒng)軟件流程圖如圖6所示。

圖6 系統(tǒng)軟件流程圖

4結(jié)論

該模塊設(shè)計(jì)具有成本低、功耗低、性能穩(wěn)定、硬件電路制作簡單等特性,最后對模塊硬件軟件進(jìn)行了系統(tǒng)測試和可靠性測試,測試結(jié)果符合轉(zhuǎn)換模塊的相關(guān)設(shè)計(jì)指標(biāo)要求。該接口模塊已成功應(yīng)用于北京市高速公路收費(fèi)站,現(xiàn)場調(diào)試結(jié)果表明,系統(tǒng)能穩(wěn)定的進(jìn)行數(shù)據(jù)傳輸,使用方便。

參考文獻(xiàn)

[1]串口轉(zhuǎn)以太網(wǎng)技術(shù)[Z/OL].[2011-9-11].http://wenku.baidu.com/link?url=kqehCnXAHS_R3Difdoxiic

5Wk_PVOn4-rsbiceFX6AErRoPiY_l7KwfDcp0Pco5y9W

rqOr8s55y2VzsLLeFliTNB4kIXSGPmOVywakZoBpO.

[2]袁成文.基于MC9S12NE64的通用串口以太網(wǎng)轉(zhuǎn)換器[D].昆明:昆明理工大學(xué),2011.

[3]史濤,沈天飛,李斌.用于車速傳感器性能測試平臺的串行口-以太網(wǎng)橋設(shè)[J].電子技術(shù)應(yīng)用,2007(4):19-22.

[4]上海卓嵐信息科技有限公司.串口轉(zhuǎn)TCPIP的TCP工作模式選擇[OL].[2010-12-02].http://www.zlmcu.com/document/tcp_work_mode.html.

收稿日期:2015-12-30;修回日期:2016-01-07

作者簡介:趙智增(1989- ),男,山東德州,碩士研究生,主要從事傳感器與測控技術(shù)。

文章編號:1674- 4578(2016)02- 0030- 04

中圖分類號:TP336

文獻(xiàn)標(biāo)識碼:A

Design of Transparent Transmission Conversion from Ethernet Port to Multi-serial Port Based on STM32

Zhao Zhizeng, Feng Chunpeng

(CollegeofElectromechanicalEngineering,NorthChinaUniversityofTechnology,Beijing100144,China)

Abstract:According to the limitation defect of transmission distance, the low transmission rate for RS-232 serial port and the higher relative cost of Ethernet port to single serial one, a kind of embedded module of Ethernet port to multi-serial port based on STM32 is designed in this paper. This module integrates the 10M/100M adaptive Ethernet port to make the communication rate of serial up to 230 Kbps. It uses Light Wight IP to reduce the occupation of RAM on the basis of maintaining chief function of TCP. It uses the DMA to realize the reception of indefinite length data. Its cost performance is very high and it is stable and reliable. It can realize the transparent transmission between network equipment and serial equipment expediently.

Key words:STM32; Ethernet port; serial; LwIP; DMA

猜你喜歡
串口
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
數(shù)字電源內(nèi)部數(shù)據(jù)傳輸?shù)拇谕ㄐ欧椒▽?shí)現(xiàn)
USB接口的多串口數(shù)據(jù)并行接收方法探索
串口技術(shù)的實(shí)物調(diào)試和虛擬仿真聯(lián)合教學(xué)模式
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
地礦測繪(2015年3期)2015-12-22 06:27:26
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
贵溪市| 乌拉特后旗| 隆化县| 大田县| 昭通市| 桂平市| 莱州市| 牡丹江市| 梅河口市| 承德县| 中山市| 甘泉县| 泰兴市| 桃源县| 和政县| 东宁县| 苍梧县| 广南县| 清水县| 景谷| 沧源| 白朗县| 雷波县| 扶沟县| 奉贤区| 洱源县| 武平县| 东乡族自治县| 米林县| 青冈县| 大邑县| 海伦市| 和田县| 安福县| 永靖县| 集安市| 永福县| 花莲市| 报价| 阿坝| 东乡族自治县|