以太網相關接口主要包括:MII/RMII/SMII以及GMII/RGMII/SGMII接口。
一、MII接口
MII(Media Independent Interface)介質無關接口或稱為媒體獨立接口,它是IEEE-802.3定義的以太網行業標準。它包括一個數據接口和一個MAC和PHY之間的管理接口?!懊襟w獨立”表明在不對MAC硬件重新設計或替換的情況下,任何類型的PHY設備都可以正常工作。
MII接口提供了MAC與PHY之間、PHY與STA(Station Management)之間的互聯技術,該接口支持10Mb/s與100Mb/s的數據傳輸速率,數據傳輸的位寬為4位。
MII接口可分為MAC模式和PHY模式,一般說來MAC和PHY對接,但是MAC和MAC也是可以對接的。?以前的10M的MAC層芯片和物理層芯片之間傳送數據是通過一根數據線來進行的,其時鐘是10M,在100M中,如果也用一根數據線來傳送的話,時鐘需要100M,這會帶來一些問題,所以定義了MII接口,它是用4根數據線來傳送數據的,這樣在傳送100M數據時,時鐘就會由100M降低為25M,而在傳送10M數據時,時鐘會降低到2.5M,這樣就實現了10M和100M的兼容。
MII接口主要包括四個部分:一是從MAC層到物理層的發送數據接口,二是從物理層到MAC層的接收數據接口,三是從物理層到MAC層的狀態指示信號,四是MAC層和物理層之間傳送控制和狀態信息的MDIO接口。
MII接口的MAC模式定義:
MII接口PHY模式定義:
MDIO接口包括兩根信號線:MDC和MDIO,通過它MAC層芯片(或其它控制芯片)可以訪問物理層芯片的寄存器(前面100M物理層芯片中介紹的寄存器組,但不僅限于100M物理層芯片,10M物理層芯片也可以擁有這些寄存器),并通過這些寄存器來對物理層芯片進行控制和管理。
MDIO管理接口如下:
MDC:管理接口的時鐘,它是一個非周期信號,信號的最小周期(實際是正電平時間和負電平時間之和)為400ns,最小正電平時間和負電平時間為160ns,最大的正負電平時間無限制。它與TX_CLK和RX_CLK無任何關系。
MDIO是一根雙向的數據線,用來傳送MAC層的控制信息和物理層的狀態信息。
二、RMII接口
MII接口也有一些不足之處,主要是其接口信號線很多,發送和接收和指示接口有14根數據線(不包括MDIO接口的信號線,因為其被所有MII接口所共享),當交換芯片的端口數據較多時,會造成芯片的管腳數目很多的問題,這給芯片的設計和單板的設計都帶來了一定的問題。為了解決這些問題,人們設計了兩種新的MII接口,它們是RMII接口(Reduced MII接口)和SMII接口(Serial MII接口)。這兩種接口都減少了MII接口的數據線,不過它們一般只用在以太網交換機的交換MAC芯片和多口物理層芯片中,而很少用于單口的MAC層芯片和物理層芯片中。RMII接口和SMII接口都可以用于10M以太網和100M以太網,但不可能用于1000M以太網,因為此時時鐘頻率太高,不可能實現。
從圖中可以看到,RMII接口相對于MII接口減少了一半的連接線,只有8根接口線。
TXD[1:0]:數據發送信號線,數據位寬為2,是MII接口的一半;
RXD[1:0]:數據接收信號線,數據位寬為2,是MII接口的一半;
TX_EN(Transmit Enable):數據發送使能信號,與MII接口中的該信號線功能一樣;
RX_ER(Receive Error):數據接收錯誤提示信號,與MII接口中的該信號線功能一樣;
CLK_REF:是由外部時鐘源提供的50MHz參考時鐘;?與MII接口不同,MII接口中的接收時鐘和發送時鐘是分開的,而且都是由PHY芯片提供給MAC芯片的。這里需要注意的是,由于數據接收時鐘是由外部晶振提供而不是由載波信號提取的,所以在PHY層芯片內的數據接收部分需要設計一個FIFO,用來協調兩個不同的時鐘,在發送接收的數據時提供緩沖。PHY層芯片的發送部分則不需要FIFO,它直接將接收到的數據發送到MAC就可以了。
CRS_DV:此信號是由MII接口中的RX_DV和CRS兩個信號合并而成。當介質不空閑時,CRS_DV和RE_CLK相異步的方式給出。當CRS比RX_DV早結束時(即載波消失而隊列中還有數據要傳輸時),就會出現CRS_DV在半位元組的邊界以25MHz/2.5MHz的頻率在0、1之間的來回切換。因此,MAC能夠從 CRS_DV中精確的恢復出RX_DV和CRS。在100Mbps速率時,TX/RX每個時鐘周期采樣一個數據;在10Mbps速率時,TX/RX每隔10個周期采樣一個數據,因而TX/RX數據需要在數據線上保留10個周期,相當于一個數據發送10次。當PHY層芯片收到有效的載波信號后,CRS_DV信號變為有效,此時如果FIFO中還沒有數據,則它會發送出全0的數據給MAC,然后當FIFO中填入有效的數據幀,數據幀的開頭是“101010---”交叉的前導碼,當數據中出現“01”的比特時,代表正式數據傳輸開始,MAC芯片檢測到這一變化,從而開始接收數據。當外部載波信號消失后,CRS_DV會變為無效,但如果FIFO中還有數據要發送時,CRS_DV在下一周期又會變為有效,然后再無效再有效,直到FIFO中數據發送完為止。在接收過程中如果出現無效的載波信號或者無效的數據編碼,則RX_ER會變為有效,表示物理層芯片接收出錯。
三、SMII接口
SMII即Serial MII,串行MII的意思,跟RMII相比,連線進一步減少到4根;
TXD:發送數據信號,位寬為1;
RXD:接收數據信號,位寬為1;
SYNC:收發數據同步信號,每10個時鐘周期置1次高電平,指示同步。
CLK_REF:所有端口共用的一個參考時鐘,頻率為125MHz。?為什么100Mbps速率要用125MHz時鐘?因為在每8位數據中會插入2位控制信號。
TXD/RXD以10比特為一組,以SYNC為高電平來指示一組數據的開始,在SYNC變高后的10個時鐘周期內,TXD上依次輸出的數據是:TXD[7:0]、TX_EN、TX_ER,控制信號的含義與MII接口中的相同;RXD上依次輸出的數據是:RXD[7:0]、RX_DV、CRS,RXD[7:0]的含義與RX_DV有關,當RX_DV為有效時(高電平),RXD[7:0]上傳輸的是物理層接收的數據。當RX_DV為無效時(低電平),RXD[7:0]上傳輸的是物理層的狀態信息數據。
四、SSMII接口
SSMII即Serial Sync MII,叫串行同步接口,跟SMII接口很類似,只是收發使用獨立的參考時鐘和同步時鐘,不再像SMII那樣收發共用參考時鐘和同步時鐘,傳輸距離比SMII更遠。
五、SSSMII接口
SSSMII即Source Sync Serial MII,叫源同步串行MII接口,SSSMII與SSMII的區別在于參考時鐘和同步時鐘的方向,SSMII的TX/RX參考時鐘和同步時鐘都是由PHY芯片提供的,而SSSMII的TX參考時鐘和同步時鐘是由MAC芯片提供的,RX參考時鐘和同步時鐘是由PHY芯片提供的,所以顧名思義叫源同步串行。
六、GMII接口
與MII接口相比,GMII的數據寬度由4位變為8位,GMII接口中的控制信號如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同MII接口中的一樣,發送參考時鐘GTX_CLK和接收參考時鐘RX_CLK的頻率均為125MHz(1000Mbps/8=125MHz)。
有一點需要特別說明下:發送參考時鐘GTX_CLK,它和MII接口中的TX_CLK是不同的,MII接口中的TX_CLK是由PHY芯片提供給MAC芯片的,?而GMII接口中的GTX_CLK是由MAC芯片提供給PHY芯片的?,兩者方向不一樣。在實際應用中,絕大多數GMII接口都是兼容MII接口的,所以,一般的GMII接口都有兩個發送參考時鐘:TX_CLK和GTX_CLK(兩者的方向是不一樣的),在用作MII模式時,使用TX_CLK和8根數據線中的4根。
七、RGMII接口
RGMII即Reduced GMII,是GMII的簡化版本,將接口信號線數量從24根減少到14根(COL/CRS端口狀態指示信號,這里沒有畫出),時鐘頻率仍舊為125MHz,TX/RX數據寬度從8位變為4位,為了保持1000Mbps的傳輸速率不變,RGMII接口在時鐘的上升沿和下降沿都采樣數據。在參考時鐘的上升沿發送GMII接口中的TXD[3:0]/RXD[3:0],在參考時鐘的下降沿發送GMII接口中的TXD[7:4]/RXD[7:4]。RGMI同時也兼容100Mbps和10Mbps兩種速率,此時參考時鐘速率分別為25MHz和2.5MHz。TX_EN信號線上傳送TX_EN和TX_ER兩種信息,在TX_CLK的上升沿發送TX_EN,下降沿發送TX_ER;同樣的,RX_DV信號線上也傳送RX_DV和RX_ER兩種信息,在RX_CLK的上升沿發送RX_DV,下降沿發送RX_ER。
八、SGMII接口
SGMII即Serial GMII,串行GMII,收發各一對差分信號線,?時鐘頻率625MHz?,在時鐘信號的上升沿和下降沿均采樣,參考時鐘RX_CLK由PHY提供,是可選的,主要用于MAC側沒有時鐘的情況,一般情況下,RX_CLK不使用,收發都可以從數據中恢復出時鐘。在TXD發送的串行數據中,每8比特數據會插入TX_EN/TX_ER 兩比特控制信息,同樣,在RXD接收數據中,每8比特數據會插入RX_DV/RX_ER兩比特控制信息,所以總的數據速率為1.25Gbps=625Mbps*2。其實,大多數MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模塊,而不需要PHY層芯片,此時時鐘速率仍舊是625MHz,不過此時跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因為插入了控制信息,而SerDes端口速率被提高是因為進行了8B/10B變換,本來8B/10B變換是PHY芯片的工作,在SerDes接口中,因為外面不接PHY芯片,此時8B/10B變換在MAC芯片中完成了。
總結下:
MII接口 | 14根數據線 | 分為MAC模式和PHY模式,一般說來MAC和PHY對接 |
---|---|---|
RMII(Reduced MII)接口 | 8根數據線 | 一般只用在以太網交換機的交換MAC芯片和多口物理層芯片中;可以用于10M以太網和100M以太網,但不可能用于1000M以太網 |
SMII(Serial MII)接口 | 4根數據線 | 一般只用在以太網交換機的交換MAC芯片和多口物理層芯片中;可以用于10M以太網和100M以太網,但不可能用于1000M以太網 |
SSMII接口 | ? | 即Serial Sync MII,叫串行同步接口 |
SSSMII接口 | ? | 即Source Sync Serial MII,叫源同步串行MII接口 |
GMII接口 | 24根數據線 | 千兆網的MII接口 |
RGMII接口 | 14根數據線 | 千兆網的MII接口 |
SGMII接口 | 2根數據線 | 千兆網的MII接口 |
淺談串口轉以太網技術
1.概述
串口轉以太網目前可以采用串口轉以太網模塊來實現,變得非常簡單易用,但是在該技術中出現的一些新問題、使用誤區需要引起注意。串口轉以太網并不是簡單傳輸媒介的變化,而是串口到TCP/IP的協議轉化。其中關系到的關鍵技術包括:TCP/IP的工作模式問題、串口分幀技術、9位技術。這里詳細分析這些串口轉網口的技術。
2.澄清一個概念:到底是串口轉以太網還是串口轉TCP/IP?
串口一般來說就是UART,它實際只定義了數據鏈路層的規范,也就是起始位、數據位、停止位。但是在不同的物理層又分為:TTL串口、RS232串口、RS485串口等。
TTL串口:它是MCU芯片之間進行數據通信的串口,它以+5V(或者+3.3V)表示1,以GND表示0。
RS232串口:它是實現設備之間通信的串口,其主要將信號電壓從0~5V的電壓變為±15V(實際一般為±12V)。電壓的增加,增大了數據傳輸的距離和可靠性。
RS485串口:它是實現遠距離通信的串口,可以實現上千米的數據傳輸。其主要特征是用差模信號(A、B兩根線之間的電壓)代替了RS232共模信號(信號線和GND之間的電壓),從而能夠抵抗共模干擾,實現更遠距離的傳。
如果按照ISO的7層模型(物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層)來分的話,串口實際上只包含了物理層、數據鏈路層。而TCP/IP協議應該屬于網絡層和傳輸層。所以串口轉TCP/IP并不準確。以太網屬于物理層和數據鏈路層,所以串口轉以太網更加準確。由于目前在以太網之上運行的協議多半是TCP/IP協議,所以串口轉以太網也可以說成是串口轉TCP/IP。
3.串口轉網口關鍵技術一:TCP/IP的工作模式問題
串口轉以太網,并不是簡單物理層和數據鏈路層的轉化。由于串口協議本身不具有網絡層和傳輸層,串口轉以太網,實際是將串口的數據作為TCP/IP的應用層數據,用TCP/IP封裝傳輸的方式。TCP/IP的應用層數據是TCP/IP所要傳送的真正有效的數據。例如用戶通過socket的recv()和send()函數接收和發送的實際是應用層數據。這樣通過串口轉TCP/IP用戶就可以用recv()和send()函數收發串口數據了。但是TCP/IP并不只是recv()和send()這么簡單,根據工作模式的不同,它關系到連接、關閉、監聽等,這是串口轉網口后需要增加處理的部分。TCP/IP的工作模式可以分為:TCP服務端模式(TCP Server)、TCP客戶端模式(TCP Client)、UDP模式。
UDP模式:UDP模式是基于非連接的模式,只要有數據發送即可發送,不需要事先連接。所以這種模式更加地接近于串口的通信方式。但是UDP協議無法保證數據不丟失,容易產生誤碼。
TCP模式:TCP模式采用數據可靠傳輸機制,所以可以保證數據基本不誤碼、不丟失。在TCP通信中,必然是由通信的兩端構成,其中一方是TCP客戶端,一方是TCP服務端。TCP客戶端和TCP服務端的概念可以用電話來類比。TCP客戶端是打電話的人,而TCP服務端是接電話的人。
如何選擇TCP/IP的工作模式?
TCP與UDP的選擇:盡量選擇TCP模式,特別是經過internet的大數據量傳輸,udp容易誤碼和丟失。
選擇TCP客戶端還是TCP服務器端:請遵循以下原則:原則一:發起數據發送的一方應該選擇為客戶端。例如一個數據采集系統,采集終端應該為客戶端。這是因為當TCP連接斷開的情況下,客戶端能夠在需要發送數據的時候主動建立連接。而TCP服務端,只能夠被動地接受連接,使得數據無法發送出去。原則二:IP或者域名固定的一方為服務器端。例如在有多個數據采集終端,而只有一個中心服務器的情況下,中心服務器應該為服務端。這是因為,中心服務器的IP或域名一般是固定的,而采集終端的IP是不斷增加和變化的。中心服務器難以記住所有的采集終端的IP,所以也難以發起連接;而采集終端尋找中央服務器就比較容易。
4.串口轉網口關鍵技術二:串口分幀技術
串口數據是可以連續不斷發送的,而以太網數據則是以數據包為單位發送的。這樣就關系到將多長的串口數據打包后作為一個以太網數據包發送的問題。
數據包長度:以太網數據包最長1500多字節,所以在串口轉網口轉發器收到1500字節后必須將其打包發送。用戶可以設定這個數據包長度上限。
數據包間隔:除了數據包長度作為串口分幀的規則外,一個更為符合邏輯的方法是通過數據包間隔。當串口轉TCP/IP轉發器發現的串口數據流中出現了T毫秒的空閑時間時,則認為之前收到的串口數據可以作為一個以太網數據包發送了。這里的T就是用戶設定的數據包間隔。
5.串口轉網口關鍵技術三:9位技術
以太網數據是以字節Byte計算的每個字節都是8位,但是串口數據則有可能出現9位,第9位常常用于區分是地址幀還是數據幀,1表示地址幀0表示數據幀。那么在當串口轉化為以太網之后,如何將第9位也傳送出去就成了一個關鍵技術。
在眾多的串口轉網口方案中都是將第9位直接舍棄的,目前據了解上海卓嵐信息科技的方案具有快速地適應9位的功能,其實現方法中采用了稱之為RealCom的協議。由于增加了第9位,所以串口數據不能夠直接透明地轉化為TCP/IP應用層數據,realcom 協議將串口數據打包之后整個作為TCP/IP的應用數據傳輸。這樣可以在realcom協議的協議頭部加入該數據包的9位是1還是0的信息,從而實現了9位傳輸技術。
淺談串口轉以太網模塊
一、什么是串口轉以太網模塊?
串口轉以太網模塊又叫做串口聯網模塊、TCP模塊、物聯網模塊、單片機上網模塊、嵌入式串口服務器模塊等,是一種網絡通訊接口轉換設備,實現單片機的TTL串口電平通訊轉換成TCP/IP網絡通訊,并實現雙向數據透明傳輸。利用串口轉以太網i模塊,為嵌入式系統通過以太網傳輸數據提供了快速的解決方案,用戶不需要具體的網絡知識就可以輕松的將單片機、串口設備聯網,從而實現遠程數據采集、遠程控制等智能化系統的搭建。
?
有人串口轉以太網模塊分為:M0系列、M4系列、超級網口系列。
M0系列是商業級串口聯網模塊、遵循功能簡單、可靠、價格合理;
M4系列工業級、多功能、多串口、高性能;
超級網口系列將模塊的功能封裝到網口中。
K2采用M0系列內核,是簡單可靠的商用級模塊;
K3的定位是工業級,采用M4系列的TI內核,繼承了 M4系列的成熟扎實的透傳功能,為數傳穩定性提供保障。
根據接口類型分為:插針式、貼片式;
功能支持:
(1)虛擬串口聯網模塊:模塊搭配虛擬串口軟件,可以實現不更改原串口軟件的前提下,與232/485通訊的系統無縫融合,轉換為網絡甚至遠程通訊;
(2)云串口聯網模塊:模塊搭配有人D2D點對點云服務平臺,實現PC到模塊、模塊到模塊的跨網絡數據傳輸,用戶無需做路由器端口映射和動態域名,且更穩定可靠;
二、串口轉以太網模塊廠家
有人物聯網是專業生產嵌入式、工業級串口轉以太網模塊的廠家。產品均經過高低溫測試,擁有CE、FCC國際認證。有人物聯網提供應用于遠程控制、數據采集的整體解決方案,包括電腦端、網頁端、手機APP、服務器、硬件各個平臺定制化服務。
三、串口轉以太網模塊圖片
?
四、串口轉以太網模塊選型
串口轉以太網模塊系列:
1.實現串口轉有線以太網,支持D2D轉發和自動虛擬串口;
2.所有產品型號以“USR-TCP232-”開頭,以下省略;(超級網口系列除外,開頭為"USR-")。
系列 | 型號 | 功能 | 特點 |
---|---|---|---|
超級網口系列特點:1.單串口轉以太網模塊;2.小體積網口一體外殼; | K2 | UART轉以太網 | 商業級,多功能,性價比 |
K3 | UART轉以太網 | 工業級,多功能,高性能,Cortex-M4內核 | ? |
串口轉以太網模塊 M4系列特點:1.多串口服務器,多串口可同時使用;2.支持:DHCP、內置網頁、域名解析;3.Cotex-M4內核,主頻120MHz,高端性能,更強更可靠,工業級溫度 ; | E2 | UART轉以太網 | 雙串口服務器,插針式,兼容-T引腳 |
ED2 | UART轉以太網 | 三串口服務器,插針式,引腳兼容ZLG產品 | ? |
五、串口轉以太網模塊應用領域
工業數據傳輸、安防監控、物聯網、公共安防、工業自動化、智能家居、電力控制、環境監測、智能農業、門禁考勤系統、POS系統、售飯系統、樓宇自動化系統、電力監控、自助銀行系統、電信機房監控等。
六、使用方法
應用框圖如下圖所示
七、串口以太網常見問題
由于用戶在使用有人物聯網的串口以太網模塊的時候,總是會遇到一些問題。本文從幫助用戶快速運用有人串口以太網模塊的角度出發,整理了幾個用戶在使用串口以太網模塊的過程中遇到的常見問題,供用戶參考。
串口以太網模塊能跨網關嗎?
串口以太網模塊可以跨越網關工作于外網,跨越路由器和交換機與公網的服務器進行通訊,實現遠程的數據采集和控制。
網絡到串口轉換是雙向的嗎?
串口以太網模塊實現的網絡到串口的轉換是雙向全雙工的,和普通串口一樣,收發可同時進行。
不能通過串口設置,串口通訊亂碼,不能通訊
請注意串口以太網模塊是TTL電平,可以直接和單片機IO口連接,如果要和計算機連接需要使用RS232轉TTL轉換器,注意模塊和單片機連接時需要交叉,即是RXD接TXD,TXD接RXD。使用串口方式配置串口以太網模塊,需要將CFG引腳接地后進行,網絡方式配置需要將串口以太網模塊接到計算機同一個局域網內,或將串口以太網模塊直接與計算機相連。
配置后串口以太網模塊會保存配置嗎?
串口以太網模塊上有EEPROM芯片,模塊會保存設置,如果斷電,下次啟動將按保存的設置工作,不需要重復配置,用戶CPU也無需對串口以太網模塊進行任何的初始化操作,在串口以太網模塊的網絡建立連接前的數據會緩存在模塊內等到網絡連接時發送出去。
八、串口服務器和串口轉以太網模塊的區別
現在市面上的串口轉以太網產品主要有兩種,即串口服務器和串口轉以太網模塊。用戶在開始項目前,首先需要考慮的是選擇串口服務器還是串口轉以太網模塊。
?
USR-TCP232-300
?
USR-TCP232-24
上圖所示,第一個是串口服務器,第二個為串口轉以太網模塊。其差別如下:
從外觀上 | 串口服務器是串口轉以太網模塊加一個外殼,該外殼具電磁隔離的功能。USR-TCP232-300串口服務器的內置串口轉以太網模塊就是USR-TCP232-24。 |
---|---|
從體積上 | 串口轉以太網模塊的大小在44×32×15mm左右,串口服務器的在95×84×25mm左右。 |
從價格上 | 串口轉以太網模塊的價格比串口服務器的價格便宜一半、,用戶一旦通過測試,會大批量地采購。串口服務器USR-TCP232-300的售價為169元,而串口轉以太網模塊USR-TCP232-24的售價為89元。 |
從功能上 | 串口服務器和串口轉以太網模塊的功能完全一樣。 |
總而言之,如果你的串口設備是一個現成的設備,而且設備機殼無法打開并放入模塊的,那么你可以選擇串口服務器,它可以外置使用。但是價格相對較高。如果你是該串口設備的廠家,具有重新組裝設計設備的能力,且用量較大,需要降低成本的,可以考慮采用串口轉以太網模塊,并將該模塊內置到你的設備內部。
審核編輯:湯梓紅
評論