C語言微控制器程式設計14:序列通訊

首頁 > 科技

C語言微控制器程式設計14:序列通訊

來源:蒙面的大俠 釋出時間:2023-03-29 17:11

序列通訊是將資料位元組分成一位一位的形式在一條傳輸線上逐個傳送,傳輸的資料線只需要一條,另外需要一條公共訊號地線和若干控制訊號線。由於一次只能傳送一位,因此對於一個位元組的資料,至少需要傳輸8位才能傳輸完畢。

微控制器與外部裝置透過串列埠通訊時,需要將並行的資料轉換為序列資料,再透過串列埠傳送到外部裝置。當微控制器透過串列埠從外部裝置接收資料時,需要將序列資料轉換為並行資料。

微控制器與外部裝置進行序列通訊,需要雙方商定一個協議,即商定傳輸方式,這樣才不會發生資料丟失問題。傳輸方式分為非同步序列通訊和同步序列通訊兩種方式。

非同步序列通訊

非同步序列通訊不需要傳送方和接收方同步時鐘訊號,對硬體要求低,當前主流的序列通訊尺度RS232就是非同步序列通訊。

非同步序列通訊依賴起始位,住手位保持通訊同步的序列通訊方式,傳輸的資料幀一般包含1位起始位,5~8位資料位,1位校驗位和1位住手位。

上圖是一個完整的非同步序列通訊資料幀,起始位為低電平,然後是8位資料,8位資料後是校驗位,校驗位為低電平或高電平,最後是住手位,住手位為高電平。

例如:用非同步序列傳輸方式傳送16進位制數41H,資料位為8位,採用奇校驗,住手位為1位,傳輸波形圖為:

透過上述傳輸波形圖可以看出,起始為低電平(0t),41H的二進位制數為1000 0010,1的個數為2個,因此校驗位為高電平(9t),住手位也為高電平(10t)。

同步序列通訊

同步序列通訊要保持傳送方和接收方的時鐘同步,因此同步通訊要使用附加訊號線,即時鐘同步的訊號線,傳送方和接收方在傳送方提供的相同時鐘頻率下完成同步序列通訊。

傳送方和接收方建立同步後,在同步時鐘的控制下按位進行傳送接收,在傳送資料位之前,需要先發送一個特定的同步字元,同步字元後面是資料位,每個資料位之間的間隔均為 “位距離”的整數倍,因此在資料傳輸過程中,傳送方和接收方完全可以確定每個資料位的位置。

序列通訊的制式

序列通訊分為單工、半雙工、全雙工三種制式。單工是指資料只能有傳送方傳送資料到接收方,接收方不能傳送資料到傳送方,即資料傳輸只能是一個方向。半雙工是指資料傳輸可以沿兩個方向,但需要分時傳輸。全雙工是指資料可以同時進行雙向傳輸。

序列通訊介面尺度

RS-232是現在主流的序列通訊介面之一,它被廣泛用於計算機序列介面外設連線,目前較為常用的串列埠有9針串列埠和25針串列埠,RS-232介面對傳輸間隔有限制,傳輸間隔在15m之內,通訊裝置可以直接連線到RS-232埠,若間隔較遠,需要使用中繼器。RS-232埠的形狀和針腳說明如下圖所示。

序列通訊是將資料位元組分成一位一位的形式在一條傳輸線上逐個傳送,傳輸的資料線只需要一條,另外需要一條公共訊號地線和若干控制訊號線。由於一次只能傳送一位,因此對於一個位元組的資料,至少需要傳輸8位才能傳輸完畢。

微控制器與外部裝置透過串列埠通訊時,需要將並行的資料轉換為序列資料,再透過串列埠傳送到外部裝置。當微控制器透過串列埠從外部裝置接收資料時,需要將序列資料轉換為並行資料。

微控制器與外部裝置進行序列通訊,需要雙方商定一個協議,即商定傳輸方式,這樣才不會發生資料丟失問題。傳輸方式分為非同步序列通訊和同步序列通訊兩種方式。

非同步序列通訊

非同步序列通訊不需要傳送方和接收方同步時鐘訊號,對硬體要求低,當前主流的序列通訊尺度RS232就是非同步序列通訊。

非同步序列通訊依賴起始位,住手位保持通訊同步的序列通訊方式,傳輸的資料幀一般包含1位起始位,5~8位資料位,1位校驗位和1位住手位。

上一篇:ChatGPT長出“... 下一篇:中銀E貸可以...
猜你喜歡
熱門閱讀
同類推薦