1. 程式人生 > >ZigBee(CC2530)(05) 串列埠收發資料

ZigBee(CC2530)(05) 串列埠收發資料

串列埠收發資料

目錄

一、預備知識: 

      UART模式提供非同步序列介面。在UART模式中,介面使用雙線連線方式(含有引腳RXD、 TXD)或者四線連線方式(含有引腳RXD、 TXD、RTS和CTS),其中RTS和CTS引腳用於硬體流量控制。

UART模式的操作具有下列特點: 
● 8位或者9位負載資料 
● 奇校驗、偶校驗或者無奇偶校驗 
● 配置起始位和停止位電平 
● 配置LSB或者MSB首先傳送 
● 獨立收發中斷 
● 獨立收發DMA觸發 
● 奇偶校驗和幀校驗出錯狀態 

        MSB是Most Significant Bit的縮寫,最高有效位。在二進位制數中,MSB是最高加權位。與十進位制數字中最左邊的一位類似。通常,MSB位於二進位制數的最左側,LSB位於二進位制數的最右側。   

  • LSB(Least Significant Bit),意為最低有效位
  • MSB(Most Significant Bit),意為最高有效位,若MSB=1,則表示資料為負值,若MSB=0,則表示資料為正。

        UART模式提供全雙工傳送,接收器中的位同步不影響傳送功能。傳送一個UART位元組包含1個起始位、8 個數據位、 1個作為可選項的第9位資料或者奇偶校驗位再加上1個或2個停止位。注意,雖然真實的資料包 含8位或者9位,但是,資料傳送只涉及一個位元組。 

  1.  單工:資料傳輸只支援資料在一個方向上傳輸;在同一時間只有一方能接受或傳送資訊,不能實現雙向通訊,舉例:電視,廣播。
  2. 半雙工:資料傳輸允許資料在兩個方向上傳輸,但是,在某一時刻,只允許資料在一個方向上傳輸,它實際上是一種切換方向的單工通訊;在同一時間只可以有一方接受或傳送資訊,可以實現雙向通訊。舉例:對講機。
  3. 全雙工:資料通訊允許資料同時在兩個方向上傳輸,因此,全雙工通訊是兩個單工通訊方式的結合,它要求傳送裝置和接收裝置都有獨立的接收和傳送能力;在同一時間可以同時接受和傳送資訊,實現雙向通訊,舉例:電話通訊

        UART操作由USART控制和狀態暫存器UxCSR以及UART控制暫存器UxUCR來控制。 這裡的x是USART的編號,其數值為0或者1。 當UxCSR.MODE設定為1時,就選擇了UART模式 

UART傳送

        USART收/發資料緩衝器、暫存器UxBUF寫入資料時,該位元組傳送到輸出引腳 TXDx。 UxBUF暫存器是雙緩衝的。當位元組傳送開始時, UxCSR.ACTIVE位變為高電平,而當位元組傳送結束時為低。當傳送結束時,UxCSR.TX_BYTE位設定為1。當USART收/發資料緩衝暫存器就緒,準備接收新的傳送資料時,就產生了一箇中斷請求。該中斷在傳送開始之後立刻發生,因此,當位元組正在傳送時,新的位元組能夠裝入資料緩衝器。 

UART接收    

        當1寫入UxCSR.RE位時,在UART上資料接收就開始了。然後UART會在輸入引腳RXDx中尋找有效起始位,並且設定 UxCSR.ACTIVE位為 1。當檢測出有效起始位時,收到的位元組就傳入到接收暫存器,UxCSR.RX_BYTE位設定為1。該操作完成時,產生接收中斷。同時UxCSR.ACTIVE變為低電平。 
通過暫存器UxBUF提供收到的資料位元組。當UxBUF讀出時, UxCSR.RX_BYTE位由硬體清0 

二、專案實施

   每個USART有如下5個暫存器,x是USART的編號,為0或者1

暫存器 解釋
UxCSR 控制和狀態暫存器
UxUCR 控制暫存器
UxGCR 通用控制
UxBAUD

設定波特率

UxBUF 接收/傳送資料快取

32MHZ 系統時鐘常用的波特率設定

U0CSR(0x86)—USART0 控制和狀態

 U0UCR (0xC4)– USART 0 UART 控制

程式碼:

未完待續......