什么是MCS 51 單片機的串行接口
串行通信的基本概念
CPU 與外部設備交換數據有并行和串行通信兩種方式。并行通信是指數據的各位同時進行傳送的方式。其特點是傳送速度快、效率高,顯然并行傳送的數據有多少位,就需要有多少根傳輸線。當傳送距離較遠時,位數較多就會導致通信線路成本的大幅度增加,因此它僅適合于短距離傳送。串行通信是指數據的各位按順序一位一位地傳送的通信方式。其特點是只要一對傳輸線就可實現通信,對傳輸的數據較多、距離很遠 時 ,它可以大量節(jié)約系統(tǒng)的硬件投資。因此,在遠距離的數據通信系統(tǒng)中一般采用串行通信方式。
串行通信依據收發(fā)功能分為 3 種方式。① 單工方式:信息只能沿著一個方向傳輸,例 如甲設備只能發(fā)送而乙設備只能接收。② 半雙工方式:信息可以沿一條信號線的兩個方向 傳輸,但不能同時實現雙向傳輸,只能交替地收或發(fā)。③ 全雙工方式:使用兩條相互獨立的數據線,分別傳輸兩路方向相反的信息,使收和發(fā)能同時進行。
在串行通信過程中,數據傳送方式有兩種:同步方式和異步方式。
(1) 同步方式是將一大批數據分成幾個數據塊,數據塊之間用同步字符予以隔開,而傳輸的各位二進制碼之間都沒有間隔。其基本特征是發(fā)送與接收時鐘始終保持嚴格同步。
(2) 異步通信是按幀傳送數據,它利用每一幀的起、止信號來建立發(fā)送與接收之間的同步,每幀內部各位均采用固定的時間間隔,但幀與幀之 間的時間間隔是隨機的。其基本特征是每個字符必須用起始位和停止位作為字符開始和結束的標志,它是以字符為單位一個個地發(fā)送和接收的。
一個字符(一幀) 由起始位、數據位、奇偶校驗位和停止位組成。起始位表示一個字符的開始,接收方可用起始位使自己的接收時鐘與數據同步 。停止位則表示一個字符的結束。在傳送一個字符時,由一位低電平的起始位開始,接著傳送數據位,數據位的位數為 5~8 。在傳輸時,按低位在前 、高位在后的順序傳送。奇偶校驗位用于檢驗數據傳送的正確性,也可以沒有,可由程序來指定。最后傳送的是高電平的停止位,停止位可以是 1 位、 1.5 位或 2 位。停止位結束到下一個字符的起始位之間的空閑位要由高電平 1 來填充(只要不發(fā)送下一個字符,線路上就始終為空閑位), 異步傳送的 8 位字符格式如圖 6.8 所示。
圖 6.8 異步通信 的 8 位字符格式
MCS 51 單片機內部有一個全雙工異步串行 I/O 口 ,占用 P3.0 和 P3.1 兩個引腳, 成為這兩個引腳的第二功能:P3.0 是串行數據接收端 RXD ,P3.1 是串行數據發(fā)送端 TXD 。
介紹與串行口有關的幾個特殊功能寄存器,然后再敘述串行口的 4 種工作模式 及其應用。
與串行口有關的特殊功能寄存器
使用串行口時,要使用特殊功能寄存器 SBUF 作傳送和接收數據的緩沖器 ,則要用 SCON 作串行口控制,要用到 SP 、IE 和 IP 作串行口 中斷控制,必要時還可能用到 T1 和 PCON 以設定波特率。
1.數據緩沖器 SBUF
串行口緩沖器 SBUF 是可直接尋址的特殊功能寄存器 ,其內部 RAM 字節(jié)地址是99H 。在物理上,它對應著兩個獨立的寄存器,一個發(fā)送寄存器,一個接收寄存器。發(fā)送時,就是 CPU 寫入 SBUF 的時候,51 系列單片機沒有專門的啟動發(fā)送狀態(tài)的指令;接收時,就是讀取 SBUF 的過程,接收寄存器是雙緩沖的,以避免在接收下一幀數據之前,CPU 未能及時響應接收器的中斷,沒有把上一幀數據讀走,而產生兩幀數據重疊的問題。
2. 串行口控制寄存器 SCON
SCON 用于控制和監(jiān)視串行口的工作狀態(tài),其各位定義如 圖 5.3 所示。相應的各位功能介紹如下:
SM0 、SM1 :用于定義串行口的操作模式,兩個選擇位對應 4 種模式,見表 6.2。其中 fOSC 是振蕩器頻率,UART 為通用異步接收和發(fā)送器的英文縮寫。
SM2 :多機通信時的接收允許標志位。在模式 2 和 3 中,若 SM2 = 1 ,且接收到的第 9 位數據(RB8)是 0 ,則接收中斷標志(RI)不會被激活。在模式 1 中,若 SM2=1 且沒有接收到有效的停止位,則 RI 不會被激活。在模式 0 中,SM2 必須是 0 。
REN:允許接收位 。由軟件置位或清零,REN=1 時 ,串行口允許接收數據;REN=0時,禁止接收。
TB8:發(fā)送數據位 8 。在模式 2 和 3 中,它是要發(fā)送的第 9 位數據,在許多通信協(xié)議中,該位是奇偶位,可以由軟件置位或清除。在多機通信中,這一位用于表示是地址幀還是數據幀。
RB8:接收數據位 8 。在模式 2 和 3 中是接收的第 9 位數據。在模式 1 中,若 SM2= 0 ,則 RB8 是接收的停止位。在模式 0 中,該位未使用。
3. 電源控制寄存器 PCON
電源控制寄存器 PCON 的各位定義如圖 6.9 所示 。PCON 的地址為 87H ,不可位尋址,初始化時需要進行字節(jié)傳送。
最高位 SMOD 與串行口的工作有關,該位是波特率倍增位。SMOD=1 時,波特率加倍,否則不加倍。
GF1 、GF0:通用標志位,由軟件置位、復位。
PD:掉電方式控制位,PD=0 為正常方式,PD=1 為掉電方式。
IDL:空閑方式控制位,IDL=0 為正常方式,IDL=1 為空閑方式。
由軟件將 PD 位置 1 ,單片機進入掉電保護狀態(tài),內部 RAM 和專用寄存器的內容被保存,單片機停止一切工作,掉電保護時的備用電源可通過 VCC 引腳接入。當電源恢復后,系統(tǒng)要維持 10ms 的復位時間后才能退出掉電保護狀態(tài) ,復位操作將重新定義專用寄存器,但內部 RAM 的內容不變。