串行通訊
終端與計(jì)算機(jī)之間或者計(jì)算機(jī)與計(jì)算機(jī)之間進(jìn)行交換信息時(shí),除了采用并行通訊方式之外,還經(jīng)常采用串行通訊方式。并行通訊是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送,其有點(diǎn)是傳送數(shù)據(jù)速度快,缺點(diǎn)是有多少位數(shù)據(jù)就需要多少根傳輸線,這在數(shù)據(jù)位數(shù)較多,傳送距離較遠(yuǎn)時(shí)就不宜采用。串行通訊是指數(shù)據(jù)一位一位地按順序傳送,其突出優(yōu)點(diǎn)是只需一根傳輸線,特別適應(yīng)于遠(yuǎn)距離傳輸,缺點(diǎn)是傳送速度較慢。
在微機(jī)測量,控制系統(tǒng)中,目前串行數(shù)據(jù)的傳輸大多采用異步通訊的方式。
同步通訊和異步通訊串行通訊分為同步傳送和異步傳送兩種方式。
? 同步傳送方式要求通信雙方以相同的速率進(jìn)行,而且要準(zhǔn)確地協(xié)調(diào)。它通過共享一個(gè)單個(gè)時(shí)鐘或定時(shí)脈沖源以保證發(fā)送方和接受方準(zhǔn)確同步。其特點(diǎn)是允許連續(xù)發(fā)送一組字符序列(而非單個(gè)字符),每個(gè)字符數(shù)據(jù)位數(shù)相同,沒有起始位和停止位,效率高。? 異步傳送方式不要求通信雙方同步,發(fā)送方和接受方可以有各自的時(shí)鐘源。為了能夠?qū)崿F(xiàn)通信,雙方必須都遵循異步通信協(xié)議。在異步通信中,通信雙方必須規(guī)定兩件事:一是字符格式,即規(guī)定字符各部分所占的位數(shù),是否采用奇偶校驗(yàn),以及校驗(yàn)的方式;二是采用的波特率,以及時(shí)鐘率與波特率之間的比例關(guān)系。由此可見,異步通信方式的傳輸效率比同步通信方式低,但它對通信雙方的同步要求大大降低,因而成本也比同步通信方式低。DTE和DCE在串行通訊中,用于發(fā)送和接收數(shù)據(jù)的設(shè)備稱為數(shù)據(jù)終端設(shè)備(Data Terminal Equipment 簡寫為DTE)。DTE既可以是一臺(tái)計(jì)算機(jī),也可以是一臺(tái)只接收數(shù)據(jù)的打印機(jī)。用于連接DTE與數(shù)據(jù)通信網(wǎng)絡(luò)的設(shè)備稱為數(shù)據(jù)通信設(shè)備(Data Communications Equipment 簡寫為DCE),或稱為數(shù)據(jù)電路終接設(shè)備。DCE既可以是一個(gè)調(diào)制解調(diào)器,也可以是簡單的線路驅(qū)動(dòng)器。
波特率在串行通訊中還有一個(gè)重要的指標(biāo)——波特率(又稱調(diào)制速率)。波特率定義為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),以位/秒(bit/s)為單位,亦稱“波特”。在異步通訊中,波特率為每秒傳送的字符數(shù)和每個(gè)字符位數(shù)的乘積,例如每秒傳送的速率為120字符/秒,而每個(gè)字符又包含10位(1位起始位,7位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1位停止位),則波特率為:
120字符/秒×10位/字符=1200位/秒=1200波特
注意:波特率與時(shí)鐘頻率不是一回事,時(shí)鐘頻率比波特率要高得多,通常在高16倍或64倍。由于異步通訊雙方各用自己的時(shí)鐘源采用較高頻率的時(shí)鐘,在一位數(shù)據(jù)內(nèi)就有16位或64個(gè)時(shí)鐘,捕捉正確的信號(hào)就可以得到保證,若時(shí)鐘頻率就是波特率,則頻率稍有偏差就會(huì)發(fā)生接收錯(cuò)誤。
LabVIEW中的串行通訊選板
安裝完labVIEW8.2后,還需要安裝VISA的驅(qū)動(dòng)程序才能使用串口,驅(qū)動(dòng)程序的下載地址為:
ftp://ftp.ni.com/support/visa/drivers/win32/4.0/visa400full.exe
LabVIEW中有關(guān)串口的函數(shù)選板如圖,它位于函數(shù)→儀器I/O→串口
下面舉一個(gè)例子來說明串口是如何進(jìn)行通訊的
例:雙機(jī)通訊
1. 功能描述
雙機(jī)通信是在兩臺(tái)計(jì)算機(jī)之間進(jìn)行串口通訊。一臺(tái)計(jì)算機(jī)作為服務(wù)器,通過RS-232串口向外發(fā)送數(shù)據(jù);另一臺(tái)計(jì)算機(jī)作為客戶機(jī),接收由服務(wù)器發(fā)送來的數(shù)據(jù)。
2. 串口引腳連接
兩臺(tái)計(jì)算機(jī)的串口之間通過一根RS-232電纜線連接起來,串口電纜線采用三線制,它只使用發(fā)送數(shù)據(jù)(TxD),接收數(shù)據(jù)(RxD)和信號(hào)地(SG)三根信號(hào)線。
3. 服務(wù)器程序設(shè)計(jì)
其程序設(shè)計(jì)如下:
㈠新建一個(gè)VI,在前面板上放置4個(gè)輸入控件:“端口號(hào)”,“波特率”,“數(shù)據(jù)比特”和“停止位”。另外,放置一個(gè)字符串輸入控件,在其內(nèi)部輸入向外發(fā)送的字符串?dāng)?shù)據(jù)。添加程序文本標(biāo)簽“串口服務(wù)器”。
㈡在程序框圖中放置一個(gè)層疊式順序結(jié)構(gòu),創(chuàng)建兩個(gè)分支。在第0分支中,放置一個(gè)“Serial Port Init.vi”函數(shù),并添加一個(gè)順序局部變量;在第1分支中,放置一個(gè)“Serial Port Write.vi”函數(shù),它們位于labVIEW8.2→vi.lib→Instr→serial。連線如圖:
前面板如圖:
4.客戶機(jī)程序設(shè)計(jì)與服務(wù)器程序類似,其中使用了“Bytes At Serial Port.vi”函數(shù)和“Serial Port Read.vi”它們都在前文所提到的路徑中,客戶機(jī)程序框圖如圖:
前面板如圖:
串口的內(nèi)容就為大家簡單的介紹這么多,有什么問題可上我們的論壇發(fā)帖,我們會(huì)盡力為大家解答。