摘要:本文介紹(shao)了串口聯網模(mo)塊的定義、用途、使用方法(fa)和性能指標(biao)。
串(chuan)口(kou)對于電(dian)子工程(cheng)師來說再(zai)熟悉不過,Serial、UART、RS232、EIA-RS-232C、COM這些都是(shi)串(chuan)口(kou)的(de)名字。串(chuan)口(kou)由于其使用(yong)引腳少(只(zhi)有RXD、TXD兩根線),協議簡單(dan),被(bei)廣(guang)泛地應用(yong)于電(dian)子設(she)備(bei)的(de)數據(ju)傳輸中,電(dian)子設(she)備(bei)通過串(chuan)口(kou)和PC通信,或者通過串(chuan)口(kou)進行外部數據(ju)擴(kuo)展都是(shi)很普遍的(de)現象。
網絡時代的到來,迫切需要電子設備也聯網,那么當一個設備需要接入以太網的時候采用串口轉以太網的方式最為合適。所謂串口聯網模塊就是將(jiang)MCU的(de)串(chuan)口通信轉化為以太網通信的(de)電子單元模塊。
以下是上海(hai)卓嵐信息科(ke)技的幾款串口(kou)聯網模塊:
從(cong)本(ben)質上來說,串口(kou)聯網模(mo)塊(kuai)就是一個串口(kou)轉以太網(TCP/IP)協議轉化器。使用(yong)串口(kou)聯網模(mo)塊(kuai)可(ke)以將用(yong)戶(hu)從(cong)復(fu)雜的嵌入(ru)式(shi)TCP/IP的代碼中解脫出來。即方便地實現了嵌入(ru)式(shi)聯網,另一方面,又可(ke)以保證聯網的穩(wen)定性。
一(yi)般來說串(chuan)(chuan)口(kou)(kou)聯(lian)(lian)網模(mo)(mo)塊(kuai)(kuai)本身是不帶RJ45接(jie)口(kou)(kou)的。這樣可(ke)以(yi)將(jiang)串(chuan)(chuan)口(kou)(kou)聯(lian)(lian)網模(mo)(mo)塊(kuai)(kuai)連接(jie)到(dao)用(yong)戶(hu)PCB上,用(yong)戶(hu)可(ke)以(yi)根據需(xu)(xu)要選擇RJ45接(jie)口(kou)(kou)放置的位置。模(mo)(mo)塊(kuai)(kuai)引腳(jiao)可(ke)以(yi)直接(jie)和RJ45接(jie)口(kou)(kou)連接(jie)。串(chuan)(chuan)口(kou)(kou)方面,用(yong)戶(hu)的單片機(ji)和串(chuan)(chuan)口(kou)(kou)聯(lian)(lian)網模(mo)(mo)塊(kuai)(kuai)的RXD、TXD引腳(jiao)連接(jie)。此后用(yong)戶(hu)發(fa)送(song)的串(chuan)(chuan)口(kou)(kou)數據就(jiu)發(fa)送(song)到(dao)網絡上,網絡接(jie)收的數據從串(chuan)(chuan)口(kou)(kou)接(jie)收。對于需(xu)(xu)要硬(ying)件流控(kong)的情況還(huan)可(ke)能(neng)需(xu)(xu)要提供RTS、CTS流控(kong)引腳(jiao)。
串口轉(zhuan)以太網(wang)功能中(zhong)需要解(jie)決發往(wang)的(de)目(mu)(mu)的(de)IP地(di)址(zhi)的(de)問(wen)題,即串口數(shu)據(ju)轉(zhuan)為網(wang)絡數(shu)據(ju)后,數(shu)據(ju)將發往(wang)哪一臺計算機(ji)?所(suo)以必(bi)須(xu)設(she)置目(mu)(mu)的(de)IP。除了目(mu)(mu)的(de)IP地(di)址(zhi)串口聯(lian)網(wang)模(mo)塊還有(you)很多參數(shu),例(li)如:目(mu)(mu)的(de)端口、串口波特(te)率、工作模(mo)式等。
一般(ban)修(xiu)改參數有兩種方(fang)(fang)(fang)法:(1)通過Web方(fang)(fang)(fang)式登錄串口(kou)聯(lian)網(wang)(wang)模(mo)(mo)塊,這(zhe)種方(fang)(fang)(fang)式要求串口(kou)聯(lian)網(wang)(wang)模(mo)(mo)塊必須(xu)和(he)運行瀏(liu)覽器的(de)PC機在同一個邏輯子網(wang)(wang)中。(2)一些串口(kou)聯(lian)網(wang)(wang)模(mo)(mo)塊提供Window工(gong)具可以(yi)立即搜(sou)索并修(xiu)改網(wang)(wang)絡中的(de)所有的(de)串口(kou)聯(lian)網(wang)(wang)模(mo)(mo)塊的(de)參數
串(chuan)口(kou)聯網(wang)模(mo)(mo)(mo)塊(kuai)在實際應(ying)用(yong)中可(ke)能(neng)大量(liang)分布(bu)于網(wang)絡中。用(yong)戶(hu)難以(yi)一個(ge)個(ge)的記住每個(ge)模(mo)(mo)(mo)塊(kuai)的IP地址。串(chuan)口(kou)聯網(wang)模(mo)(mo)(mo)塊(kuai)應(ying)該提供一套Windows工具(ju),可(ke)以(yi)迅速地找到(dao)網(wang)絡上的所有聯網(wang)模(mo)(mo)(mo)塊(kuai),并可(ke)以(yi)設(she)置參數(shu),對其進行(xing)管理。
串口聯網模塊實際上只解決了嵌入式設備端串口數據轉化為以太網數據的功能,但是PC端(也就是負責接收網絡數據的PC端)如何接收、處理數據?基本上有3中方法:
(1)直接的socket通信:用戶通過windows網絡編程直接調用socket API函數,通過UDP、TCP/IP協議同串口聯網模塊通信。該方法要求使用者具有一定的網絡編程的基礎。
(2)虛擬串口:這里介紹一個新的概念虛擬串口。虛擬串口和硬件串口不同,硬件串口是計算機上本來存在的COM口,例如COM1、COM2等,虛擬串口是使用Windows的虛擬設備技術,在底層驅動虛擬出一個串口,在上層軟件看來該串口和硬件串口可以一樣的使用。例如串口聯網模塊附帶的PC端軟件虛擬一個COM5,然后將COM5和某個串口聯網模塊綁定,此后用戶程序可以讀寫COM5來實現和串口聯網模塊的通信。
(3)設(she)備管理函數庫(ku)DLL:串口聯網(wang)(wang)模塊一般可(ke)以提供一個Windows動(dong)態鏈(lian)接庫(ku),通過該(gai)鏈(lian)接庫(ku)提供的函數,可(ke)以直接和(he)串口聯網(wang)(wang)模塊通信(xin)。
(1)數(shu)(shu)據轉發(fa)的穩定性(xing):穩定性(xing)是串口(kou)聯(lian)(lian)網模(mo)塊(kuai)的最(zui)重要的指標。首先需要在各種通(tong)信(xin)(xin)情(qing)況下保持連接的穩定。再次要保證不丟失數(shu)(shu)據,無傳輸錯(cuo)誤(wu)。串口(kou)聯(lian)(lian)網模(mo)塊(kuai)設計,應該能夠支持全(quan)雙工通(tong)信(xin)(xin)下,不間斷(duan)發(fa)送數(shu)(shu)據時(shi)不丟包。這(zhe)將使得此類模(mo)塊(kuai)能夠勝任任何流量(liang)狀況的通(tong)信(xin)(xin)。
(2)數據(ju)發(fa)送——應(ying)答(da)(da)時(shi)間(jian):該速度(du)表示從從PC端(duan)發(fa)送數據(ju),經過(guo)串(chuan)口聯網(wang)模(mo)塊,轉發(fa)到設(she)備,設(she)備應(ying)答(da)(da),再(zai)經串(chuan)口聯網(wang)設(she)備轉發(fa),發(fa)回PC的(de)時(shi)間(jian)差。該速度(du)反應(ying)了串(chuan)口聯網(wang)模(mo)塊的(de)運行(xing)速度(du)。
(3)豐富(fu)的參(can)數(shu)配置:除了基本的目的IP、波(bo)特率等(deng)參(can)數(shu)外,串(chuan)口聯網模塊(kuai)應(ying)該具有更為豐富(fu)的參(can)數(shu)可(ke)以(yi)配置,以(yi)適應(ying)不同的應(ying)用場合。
(4)多種修(xiu)改參數(shu)的(de)方法:一(yi)般的(de)串口(kou)聯網(wang)(wang)模塊(kuai)只能夠(gou)通(tong)過(guo)(guo)網(wang)(wang)絡端對參數(shu)進行(xing)修(xiu)改,例如(ru)通(tong)過(guo)(guo)Web服務器(qi),或通(tong)過(guo)(guo)PC上的(de)特定的(de)管理工具進行(xing)修(xiu)改。串口(kou)聯網(wang)(wang)模塊(kuai)應該能夠(gou)支持在(zai)MCU這端通(tong)過(guo)(guo)串口(kou)修(xiu)改模塊(kuai)參數(shu)。