串列埠的使用

2021-07-26 21:45:19 字數 1563 閱讀 7585

序列通訊

終端與計算機之間或者計算機與計算機之間進行交換資訊時,除了採用並行通訊方式之外,還經常採用序列通訊方式。並行通訊是指資料的各位同時進行傳送,其有點是傳送資料速度快,缺點是有多少位資料就需要多少根傳輸線,這在資料位數較多,傳送距離較遠時就不宜採用。序列通訊是指資料一位一位地按順序傳送,其突出優點是只需一根傳輸線,特別適應於遠距離傳輸,缺點是傳送速度較慢。

在微機測量,控制系統中,目前序列資料的傳輸大多採用非同步通訊的方式。

同步通訊和非同步通訊 序列通訊分為同步傳送和非同步傳送兩種方式。

dte和dce 在序列通訊中,用於傳送和接收資料的裝置稱為資料終端裝置(data terminal equipment 簡寫為dte)。dte既可以是一台計算機,也可以是一台只接收資料的印表機。用於連線dte與資料通訊網路的裝置稱為資料通訊裝置(data communications equipment 簡寫為dce),或稱為資料電路終接裝置。dce既可以是乙個數據機,也可以是簡單的線路驅動器。

波特率 在序列通訊中還有乙個重要的指標——波特率(又稱調製速率)。波特率定義為每秒鐘傳送二進位制數碼的位數,以位/秒(bit/s)為單位,亦稱「波特」。在非同步通訊中,波特率為每秒傳送的字元數和每個字元位數的乘積,例如每秒傳送的速率為120字元/秒,而每個字元又包含10位(1位起始位,7位資料位,1位奇偶校驗位,1位停止位),則波特率為:

120字元/秒×10位/字元=1200位/秒=1200波特

注意:波特率與時鐘頻率不是一回事,時鐘頻率比波特率要高得多,通常在高16倍或64倍。由於非同步通訊雙方各用自己的時鐘源採用較高頻率的時鐘,在一位資料內就有16位或64個時鐘,捕捉正確的訊號就可以得到保證,若時鐘頻率就是波特率,則頻率稍有偏差就會發生接收錯誤。

labview中的序列通訊選板

labview中有關串列埠的函式選板如圖,它位於函式→儀器i/o→串列埠

下面舉乙個例子來說明串列埠是如何進行通訊的

例:雙機通訊

1. 功能描述

雙機通訊是在兩台計算機之間進行串列埠通訊。一台計算機作為伺服器,通過rs-232串列埠向外傳送資料;另一台計算機作為客戶機,接收由伺服器傳送來的資料。

2. 串列埠引腳連線

兩台計算機的串列埠之間通過一根rs-232電纜線連線起來,串列埠電纜線採用三線制,它只使用傳送資料(txd),接收資料(rxd)和訊號地(sg)三根訊號線。

3. 伺服器程式設計

其程式設計如下:

㈠新建乙個vi,在前面板上放置4個輸入控制項:「埠號」,「波特率」,「資料位元」和「停止位」。另外,放置乙個字串輸入控制項,在其內部輸入向外傳送的字串資料。新增程式文字標籤「串列埠伺服器」。

㈡在程式框圖中放置乙個層疊式順序結構,建立兩個分支。在第0分支中,放置乙個「serial port init.vi」函式,並新增乙個順序區域性變數;在第1分支中,放置乙個「serial port write.vi」函式,它們位於labview8.2→vi.lib→instr→serial。連線如圖:

前面板如圖:

4.客戶機程式設計與伺服器程式類似,其中使用了「bytes at serial port.vi」函式和「serial port read.vi」它們都在前文所提到的路徑中,客戶機程式框圖如圖:

前面板如圖:

vmare CDlinux 的串列埠使用

因為想用cdlinux做嵌入式,所以一直想搞定串列埠維護的問題,之前走了一些彎路,現在終於搞定了 好像虛擬機器的串列埠只能是com1的 也可能是cdlinux的限制,不確定 我的本本沒有物理串列埠。需要使用虛擬串列埠。有2個辦法 1 通過vpsm虛擬串列埠 開始使用vpsm軟體虛擬出com4,對應到...

usart串列埠使用

stm32串列埠使用 1 printf函式呼叫 iar的option設定中將printf庫開啟再編寫printf重定向到usartn的函式 int fputc int ch,file f return ch 使用usb轉ttl直接連線mcu與計算機即可。除ttl外,rs232與rs485都可作為串列...

ros中串列埠的使用

txt檔案要新增下面內容 add executable talker src talker.cpp target link libraries talker add dependencies talker roserial generate messages cpp add executable l...