摘要:單片機以其體積小、價格低、抗干擾性好等特點,在現代控制系統中常用在操作現場進行數據采集,以及實現現場控制中.但是由于其數據存儲容量和數據處理能力都較低,所以一般情況下要通過通信手段使它與PC機相連,把所采到的數據傳送到PC機上,再在PC機上進行數據處理,充分發揮兩者各自的優勢.由于單片機輸入、輸出電平是TTL電平,而PC機配置的是RS-232標準串行接口,兩者的串行規范不一致,因此需要完成單片機與PC機的串口通信原理的方案。
關鍵詞:單片機 通信 串行通信 數據通信
1 串行通信的基本知識
1.1 數據通信的基本概念
在實際應用中,計算機的CPU與外部設備之間經常要進行信息交換;一臺計算機與其他計算機之間也往往要交換信息,這些信息交換都可稱為通信。通信的方式有串行和并行兩種。
串行通信是指數據一份一位按順序傳送的通信方式。其突出特點是只需少數幾條線就可以在系統間交換信息,大大降低了傳送成本.尤其適用于遠距離通信。但華行通信的速度比較低。
并行通信是指數據的各位同時進行傳送的通信方式。其優點是數據的傳送速度快,缺點是傳輸線多,數據有多少位,就需要多少傳輸線。一般適用于高速短距離的應用場合,典型的應用是計算機和打印機之間的連接。
1.2 串行通信的傳送方向
串行通信的傳送方向有單工、半雙工和全雙工三種。單工方式下只允許數據向一個方向傳送,要么只能發送,要么只能接收;半雙工方式下允許數據在一條傳輸線上往兩個相反的方向傳送,但不能同時傳送,只能交替進行。為了避免雙方同時發送,需另加聯絡線或制定軟件協議:全雙工是指數據可以同時往兩個相反的方向傳送,需要兩個獨立的數據線分別傳送兩個相反方向的數據。
1.3 串行通信的同步方式
串行通信中必須規定一種雙方都認可的同步方式,以便接收端完成正確的接收。串行通信有異步和同步兩種基本方式。
1.3.1 異步通信:在異步通信中,數據按幀傳送,用一位起始位(“0”電平)表示一個字符的開始,接著是5-8個數據位。低位在前,高位在后,用停止位(“1”電平)表示字符的結束,在信息位和停止位之間可以插入一位奇偶校驗位,這樣構成—個數據幀,這時可用這一位來確定這一幀中字符所代表的信息的性質(地址/數據等)。異步通信適用于低速通信的場合。通信的雙方若時鐘略有誤差,兩個信息字符之間的停止間隔將為這種誤差提供緩沖余地,因此異步通信方式允許有較小的頻率偏移,這是它的優點。
1.3.2 波特率:波特率是指數據,則每個字符格式包含10位,這時傳送的波特率為:的傳輸速率。表示每秒鐘傳送的二進制代碼的位致,單位是b/s。波特率是衡量傳送通道頻寬的指標,它和傳送有效數據的速率并不一致。它的傳送速率一般在50~19200之間。
1.4 串行通信規程
數據通信規程是通信雙方為了有效地交換信息而建立起來的一些約定,在規程中對數據的編碼同步方式、傳輸速度、傳輸控制步驟、校驗方式、報文方式等問題給予統一的規定,通信規程也稱為通信協議。
2 串行接口
MCS-51片內有一個可編程的全雙工串行口,可作UART用.也可作同步移位寄存器用。發送數據由TXN(P3.1)端送出,接收數據由RXD(P3.0)端輸入,串行n有兩個物理上獨立的緩沖器SHUF,一個為發送緩沖器,另一個為接收緩沖器、二者共用一個SFR地址99H。發送緩沖器只能寫入,不能讀出,接收緩沖器只能讀出,不能寫入,能設置備種波特率,給實際使用帶來很大的靈活性。
2.1 串行口的專用寄存器
8051的串行口是可編程接口,對它的初始化編程只需把兩個控制字分別寫入特殊功能寄存器SRON(98H)和電源控制寄存器PCON(87H)中即可。
串行口控制寄存器SCON,8051串行通信的方式選據、接收和發送控制以及串行口的狀態標志等均由特殊功能寄存器SCON控制和指示。串行發送中斷標志們和接收中斷標志RI共用一個中斷源,CPU并不知道是TI還是RI產生的中斷請求,所以在全雙工通信時,必須由軟件來判別.復位后SCON的所有位都清0。
2.2 串行口的工作方式
在控制寄存器中,SM0和SM1位決定串行口的工作; SM2位決定串口應用于多處理機的通信方式。
2.2.1 方式0
當SM0=0,SM1=0時串口選擇方式0這種工作方式實質上是一種同步移位寄存器方式.其數據傳輸的波特率固定為(1/12).fosc.數據由RXD(P3.0)因腳輸入或輸出,同步異位時鐘由TXD(P3.0)引腳輸出.接收/發送的是8為數據,傳送時低位在前。
2.2.2 方式1
當SM0=0、SMl=1時,串行口選擇方式1。其數據傳輸波特率由定時器/計數器T1和T2的溢出決定,可用程序設定。由TXD(P3.1)引腳發送數據,由RXD(P3.0)引腳接收數據。發送或接收一幀信息為10位:1位起始位(Q)、8位數據位和1位停止位(1)。
2.2.3 方式2和3
當SM0=1、SM1=0時,串行口選擇方式2;當SM0=l、SMl=l時,串行口選擇方式3。由TXD(P3.1)引腳發送數據,由RXD(P3.0)引腳接收數據。發送或接收一幀信息為11位:1位起始位(0)、9位數據位和1位停止位(1)。
3 RS-232串行接口標準
目前RS-232是PC機與通信工業中應用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。RS-232采取不平衡傳輸方式,即所謂單端通訊。由于其發送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點對點通訊而設計的,其驅動器負載為3~7kΩ。所以RS-232適合本地設備之間的通信。
RS-232C接口是以實現數據設備之間(包括數據終端設備DTE如計算機,終端,其他設備等和數據通信設備DCT如調制解調器等)進行串行數據通信的標準接口,是一個有25個引腳的連接器,它的每一個引腳的定義及各種信號電平的標準的,因而確保了不同制造商生產的數據設備之間進行通信的兼容。
最后,在大型直流電機調速過程中,通信模塊有可能受到外界較大的干擾。為了保證通信的可靠性,制訂如下的通信協議:
①PC 機和單片機都可以發送和接收數據。
②PC 機和單片機的波特率都選定為9600bit/s。
③通信幀格式是:1個起始位,8個數據位,1位可編程位(用以確定發送和接收的是數據還是地址),1位停止位。
④發送和接收一個數據包都要進行累加和檢驗,每個字節的發送與接收要進行偶檢驗。
⑤采用中斷通信方式。
⑥為了保證數據的可靠、有效,PC機主動聯系單片機,單片機收到PC機發送的地址后再將本機地址發送給上位PC機,在上位機端若檢查收到的地址碼和開始發送出去的地址碼相同,則認定雙方握手成功,開始進行數據通信。
參考文獻:
[1]何利民.單片機應用系統設計[M].北京航空航天大學出版社.1998.
[2]孫玉才.單片微型計算機及其應用[M].電子工業出版社.2001.