51微控制器串列埠通訊

2021-09-25 08:56:04 字數 1981 閱讀 8370

(1)並行通訊

傳送方和接收方用多根資料線連線,多位資料同時傳送。傳輸線多,長距離傳輸時成本大。

(2)序列通訊

單根資料線傳送資料,逐位傳送。長距離傳送成本低,但控制相對複雜。

序列通訊又可分為:非同步序列通訊同步序列通訊

非同步序列通訊:所謂「非同步」,指的是雙方裝置使用各自的時鐘,以字元為單位傳輸,採用一種特殊的格式稱為「幀」(如下圖),且各字元之間的間隙不等。

一幀資料由起始位,資料位,校驗位和停止位構成。

常態下,資料線上為高電平。起始位為低電平,也就是說,起始位出現,表示有一幀資料要傳輸了。

校驗方式有奇偶校驗和校驗迴圈冗餘校驗三種方式。

其中「和校驗」是指,對資料塊求和,產生乙個位元組的校驗資料存到資料塊末尾,接收方接受資料時對資料塊再求和,和末尾的校驗資料比較,不一致就表示傳輸發生錯誤。

同步序列通訊:雙方的時鐘嚴格一致,傳送的字元資料間沒有間隙,雙方實現同步。

rs232是美國電子工業協會於2023年發布的序列通訊介面標準,rs即recomend standard,推薦標準,232為標示號。rs232用的是負電平邏輯,-3v ~ -15v 為1,+3 ~ +15v為0。

ttl是transistor-transistor logic的簡寫,電晶體-電晶體邏輯。工作電壓5v。規定:

rs232和ttl介面不僅有工作電壓的不同。rs232傳輸速率低,傳輸距離不長,採用共地傳輸產生共模干擾。二者之間需要通過轉換晶元轉換電平,如max232。

max232外圍電路圖:

上半部分為電源轉換電路,下半部分為傳送和接收部分。

注意輸入輸出要一一對應。從t1in輸入就要從t1out輸出,從r1in輸入就要從r1out輸出。

波特率是衡量序列資料傳輸速率的指標,和位元率乙個單位,即每秒傳輸了多少位,bit per second,bps。

波特率的計算公式

計算定時器裝入的初值

設初值為x,那麼定時器就是每計 256-x 個數溢位一次。

首先根據晶振頻率計算計乙個數需要的時間。

如11.0592mhz,12個時鐘週期等於乙個機器週期,所以計乙個數需要的時間為頻率11.0592mhz的倒數再乘上12,即12/11059200(s)。

那麼定時器溢位一次的時間就是 12/11059200*(256-x)。作個倒數就是溢位率。

接著根據採用的波特率和選擇的工作方式smod,代入上面相應的計算公式,就可以計算出初值x了。此時計算出的x為十進位制,然後轉成16進製制。

常用波特率初值表:

為什麼51系列微控制器的晶振會用11.0592mhz這個神奇的數?

因為如果採用整數如12mhz或6mhz的話,計算出的初值就不是乙個整數,導致定時出現累積誤差。試來試去,用11.0592mhz能非常準確地計算出定時器的初值。只要是標準的通訊速率,算出來的初值都是整的。

51微控制器 UART串列埠通訊

使用半雙工通訊 使用硬體uart模組和串列埠中斷 include typedef unsigned int uint void configuart uint baud void main void configuart uint baud 中斷型別碼為4,中斷向量的位址 中斷型別碼 8 3 voi...

51微控制器複習 串列埠通訊

計算機通訊是指計算機與外部裝置或計算機與計算機之間的資訊交換。比如電腦和微控制器 通訊有並行通訊和序列通訊兩種方式。在多微機系統以及現代測控系統中資訊的交換多採用序列通訊方式。並行通訊 通常是將資料位元組的各位用多條資料線同時進行傳送 比如這樣說,乙個位元組有八位,我有八根線,一根傳一位,八位同時傳...

51微控制器串列埠通訊詳解

51微控制器配置除了需要配置2個8位暫存器scon pcon外,還要配置定時器1的控制暫存器tmod,因為串列埠在進行收發需要使用定時器來取樣。1 狀態控制暫存器 scon scon 是乙個逐位定義的 8 位暫存器,用於控制序列通訊的方式選擇 接收和傳送,指 示串列埠的狀態,scon 即可以位元組定...