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位,但是,資料傳送只涉及一個位元組。
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 控制
程式碼:
未完待續......