S3C2440 UART串列埠驅動

2021-06-01 22:26:14 字數 1908 閱讀 9663

通用非同步接收器和傳送器(universal asynchronous receiver and transmitter) 簡稱uart。通常是嵌入式裝置中預設都會配置的通訊介面。這是因為,很多嵌入式裝置沒有顯示屏,無法獲得嵌入式裝置實時資料資訊,通過uart串列埠和超級終端相連,列印嵌入式裝置輸出資訊。並且在對嵌入式系統進行跟蹤和除錯時,uart串列埠了是必要的通訊手段。比如:網路路由器,交換機等都要通過串列埠來進行配置。uart串列埠還是許多硬體資料輸出的主要介面,如gps接收器就是通過uart串列埠輸出gps接收資料的。

圖2-56同步訊號與非同步訊號

同步通訊技術

在傳送資料訊號的時候,會同時送出一根同步時鐘訊號, 用來同步傳送方和接收方的資料取樣頻率。如圖2-56所示,同步通訊時,訊號線1是一根同步時鐘訊號線,以固定的頻率進行電平的切換,其頻率週期為t,在每個電平的上公升沿之後進行對同步送出的資料訊號線2進行取樣(高電平代表1,低電平代表0),根據取樣資料電平高低取得輸出資料資訊。如果雙方沒有同步時鐘的話,那麼接收方就不知道取樣週期,也就不能正常的取得資料資訊。

非同步通訊技術

在非同步通訊技術中,資料傳送方和資料接收方沒有同步時鐘,只有資料訊號線,只不過傳送端和接收端會按照協商好的協議(固定頻率)來進行資料取樣。資料傳送方以每秒鐘57600bits的速度傳送資料,接收方也以57600bits的速度去接收資料,這樣就可以保證資料的有效和正確。通常非同步通訊中使用波特率(baud-rate)來規定雙方傳輸速度,其單位為bps(bits per second每秒傳輸位數)。

序列通訊好比是一列縱隊,每個資料元素依次縱向排列。如圖2-57所示,傳輸時乙個位元乙個位元的序列傳輸,每個時鐘週期傳輸乙個位元,這種傳輸方式相對比較簡單,速度較慢,但是使用匯流排數較少,通常一根接收線,一根傳送線即可實現序列通訊。它的缺點是要增加額外的資料來控制乙個資料幀的開始和結束。

並行通訊好比一排橫隊,齊頭並進同時傳輸。這種通訊方式每個時鐘週期傳輸的資料量和其匯流排寬度成正比,但是實現較為複雜。uart通訊採用的是序列方式進行通訊的。

圖2-57序列資料通訊與並行資料通訊

在資料通訊過程中,傳送方和接收方為了實現資料的正確傳送和接收,通常會有乙個狀態暫存器來描述當前資料接收和傳送狀態,當傳送方有資料傳送時,會檢視傳送狀態暫存器,看是否允許傳送資料(如果上一次資料還沒有傳送完畢,不允許繼續資料傳送),在傳送允許情況下再送出新資料。同樣,接收端通過檢視接收狀態暫存器,確定是否有新資料到達,如果有資料到達,將去接收資料緩衝區讀取資料。

(1)輪詢模式

通過程式執行流,不停的檢測狀態暫存器的結果,如果當前可傳送或接收,則傳送或接收資料。其過程可以用下面偽**來表示。

; 輪詢方式實現資料傳送偽**

send()

/* uart串列埠單個字元列印函式 */

extern void putc(unsigned char c)

/* uart串列埠接受單個字元函式 */

extern unsigned char getc(void)

/* uart串列埠字串列印函式 */

extern int printk(const char* str)

return i;}

__inline void delay(int msec)

/* xmain 通過uart串列埠列印字串 */

int xmain()

return 0;

}當編譯並將生成image檔案燒寫到norflash,在pc機上開啟:開始->所有程式->附件->通訊->超級終端,建立乙個新的連線:mini2440,在之後彈出的com設定中,設定com波特率57600bps,1個停止位,8個資料位,無校驗方式,通過串列埠線連線開發板和pc串列埠(筆記本通常沒有串列埠,可以買乙個usb轉串列埠線),開啟電源可以看到超級終端會不停輸出「uart串列埠列印試驗」字串。

S3C2440 UART自動流控制(AFC)

1.流控制在序列通訊中的作用 這裡講到的 流 當然指的是資料流。資料在兩個串列埠之間傳輸時,常常會出現丟失資料的現象,或者兩台計算機的處理速度不同,如台式電腦與微控制器之間的通訊,接收端資料緩衝區已滿,則此時繼續傳送來的資料就會丟失。現在我們在網路上通過modem進行資料傳輸,這個問題就尤為突出。流...

s3c2440裸機串列埠UART

串列埠收發資料 115200,8n1。每一位的時間是t 1 115200。傳輸乙個位元組需要10位 包括起始位1位,資料位8位,停止位1位,需要的時間是t 10 115200。每秒傳輸的的位元組數 1 t 115200 10 11520byte。回環模式 一發出資料就立刻收到,用於測試。main.c...

s3c2440之UART學習筆記

uart universal asynchronous receiver transmitter,通用非同步接收 傳送裝置 用於非同步通訊,可以實現全雙工傳送和接收。它不僅可以實現不同嵌入式系統之間的通訊,還可以實現與pc之間的通訊。資料傳輸流程如下 1 平時資料線處於空閒狀態 1狀態 2 當要傳送...