RS232轉網口(kou)轉換(huan)器ZLAN2100是(shi)支持RS232流控(kong)和網口(kou)流控(kong)的(de)高性能轉換(huan)器。所謂流控(kong)即對數(shu)(shu)據流的(de)速度進行控(kong)制,防止(zhi)接收方(fang)緩沖區滿的(de)時候發送方(fang)繼續發送數(shu)(shu)據引起數(shu)(shu)據的(de)丟失。RS232轉網口(kou)中(zhong)流控(kong)對于防止(zhi)數(shu)(shu)據包丟失是(shi)相當重要的(de)。
RS232和網(wang)(wang)(wang)口(kou)(kou)采用(yong)了(le)不同的(de)(de)流(liu)控(kong)(kong)機(ji)制(zhi)。RS232的(de)(de)流(liu)控(kong)(kong)分(fen)為無流(liu)控(kong)(kong)、軟件流(liu)控(kong)(kong)、硬件流(liu)控(kong)(kong)。網(wang)(wang)(wang)口(kou)(kou)的(de)(de)流(liu)控(kong)(kong)一般采用(yong)TCP的(de)(de)窗口(kou)(kou)流(liu)控(kong)(kong)機(ji)制(zhi)。由于兩種流(liu)控(kong)(kong)方式的(de)(de)不同,ZLAN2100在將RS232協議(yi)數據轉(zhuan)換為網(wang)(wang)(wang)口(kou)(kou)協議(yi)數據的(de)(de)時候,也要進行流(liu)控(kong)(kong)方式的(de)(de)轉(zhuan)換。
RS232的流控方式介紹如下:
1.無流控:沒有流控功能。
2.軟件流控:軟件流控也稱之為XON/XOFF流控,使用控制字符XON、XOFF來實現。在RS232數據通信過程中,如果發送方收到XOFF字符則停止發送數據,反之如果收到XON字符則重新開始發送數據。XON一般定義為十六進制0x11,XOFF為十六進制0x13。
3.硬件(jian)流(liu)控(kong)(kong):硬件(jian)流(liu)控(kong)(kong)又分(fen)為(wei)(wei)DSR/DTR流(liu)控(kong)(kong)和CTS/RTS流(liu)控(kong)(kong)。硬件(jian)流(liu)控(kong)(kong)是通過硬件(jian)的(de)高(gao)低(di)電平來(lai)通知發(fa)送方,接收方的(de)緩(huan)沖區是否快滿了。CTS/RTS流(liu)控(kong)(kong)時,RS232(DB9)的(de)8引腳(jiao)為(wei)(wei)RTS,7引腳(jiao)為(wei)(wei)CTS。DSR/DTR流(liu)控(kong)(kong)時,RS232(DB9)的(de)6引腳(jiao)為(wei)(wei)DSR,4引腳(jiao)為(wei)(wei)DTR。
網口(kou)流(liu)控方式(shi):網口(kou)一般采用兩(liang)種協(xie)議(yi)(yi)TCP協(xie)議(yi)(yi)和UDP協(xie)議(yi)(yi)。其中(zhong)UDP協(xie)議(yi)(yi)是沒(mei)有流(liu)控的(de),TCP協(xie)議(yi)(yi)采用窗(chuang)口(kou)流(liu)控,即發送(song)方知道接(jie)收方的(de)接(jie)收緩沖(chong)區大(da)小,發送(song)方從而(er)不會發送(song)超過接(jie)收方接(jie)收能力的(de)數據量(liang),接(jie)收方也(ye)會定期(qi)告訴發送(song)方窗(chuang)口(kou)大(da)小的(de)變化。
ZLAN2100和ZLVircom相(xiang)互配合實現RS232轉網口(kou)的流(liu)(liu)控(kong)轉化(hua),例(li)如當RS232給(gei)出硬(ying)件(jian)流(liu)(liu)控(kong)引(yin)腳高(gao)(gao)(gao)電平(ping)時(高(gao)(gao)(gao)電平(ping)表(biao)示開始(shi)流(liu)(liu)控(kong)),ZLAN2100的內(nei)嵌(qian)TCP/IP協議棧自動通知(zhi)TCP窗口(kou)減少(shao);反之(zhi)當TCP窗口(kou)減少(shao)時ZLAN2100自動設置硬(ying)件(jian)流(liu)(liu)控(kong)引(yin)腳高(gao)(gao)(gao)為高(gao)(gao)(gao)電平(ping)。
RS232串(chuan)口線(xian)的(de)(de)接頭(tou)分為(wei)公頭(tou)和木頭(tou)。另外(wai)有(you)些(xie)RS232串(chuan)口線(xian)是(shi)9芯的(de)(de),有(you)些(xie)只有(you)GND、RXD、TXD這3芯。有(you)些(xie)RS232串(chuan)口線(xian)是(shi)2、3交叉(cha)的(de)(de)(即RXD、TXD交叉(cha)),有(you)些(xie)是(shi)不交叉(cha)的(de)(de)。要(yao)實現(xian)RS232的(de)(de)硬(ying)件流(liu)控(kong)必須采用(yong)9線(xian)的(de)(de)RS232串(chuan)口線(xian),否則硬(ying)件流(liu)控(kong)信號無法(fa)傳(chuan)遞過去(qu)。
用戶(hu)可以根據實際需要手動設置(zhi)ZLAN2100的(de)流(liu)控方(fang)式,設置(zhi)的(de)方(fang)法是進入ZLVircom主界面的(de)設備管(guan)理->對特定(ding)設備進行設備編輯(ji)->進入設備設置(zhi)對話(hua)框(kuang)->選擇串口流(liu)控參數。
除了(le)手(shou)動(dong)設置(zhi)流(liu)控(kong)方式外,在使用(yong)(yong)虛(xu)擬(ni)串(chuan)口時,為(wei)了(le)能夠實現(xian)ZLVircom軟(ruan)(ruan)件(jian)對用(yong)(yong)戶軟(ruan)(ruan)件(jian)采用(yong)(yong)的(de)(de)流(liu)控(kong)方式的(de)(de)自(zi)動(dong)探測(ce),必須啟用(yong)(yong)流(liu)控(kong)自(zi)適應。啟用(yong)(yong)的(de)(de)方法是:進入zlvircom的(de)(de)菜單->“配置(zhi)”->“軟(ruan)(ruan)件(jian)配置(zhi)”,彈(dan)出“vircom配置(zhi)”對話框,將“選擇需要自(zi)使用(yong)(yong)的(de)(de)參(can)數”中將“流(liu)控(kong)”打勾,默認情況下“流(liu)控(kong)”自(zi)適應功(gong)能是沒有打勾的(de)(de)。
在計算機(ji)的(de)(de)RS232(COM口(kou))編(bian)程中(zhong),如果用(yong)(yong)戶調(diao)用(yong)(yong)操作(zuo)系統(例(li)如windows的(de)(de)VC++環境下(xia))底(di)層的(de)(de)RTSEnalbe()函數可(ke)以手動控制RTS引腳的(de)(de)電平,讓其隨時輸出1或者0。該(gai)功能實際上可(ke)以作(zuo)為(wei)IO口(kou)DOUT,即(ji)用(yong)(yong)該(gai)函數來直接(jie)控制一個IO輸出引腳。那么(me)采用(yong)(yong)卓嵐的(de)(de)ZLVircom虛擬(ni)串口(kou)驅(qu)動以后,用(yong)(yong)戶打開虛擬(ni)串口(kou)COM5,同樣可(ke)以用(yong)(yong)RTSEnalbe()來控制網口(kou)遠端的(de)(de)ZLAN2100的(de)(de)RS232口(kou)的(de)(de)RTS的(de)(de)電平。該(gai)功能屬于較為(wei)高級(ji)的(de)(de)功能特性。