基於S3C2440的UART傳輸小結

2021-08-08 06:10:21 字數 1150 閱讀 1554

這裡簡單地介紹一下通過暫存器來控制s3c2440的uart傳輸。

檢視s3c2440的晶元手冊可以發現uart有著傳送和接收的快取區,在快取區有資料後其便乙個位元組乙個位元組地將資料傳輸到對應埠處。

這裡介紹其中使用到的幾個暫存器。

ulconx:用於設定資料的資料位、校驗位、停止位之類的資訊。

uconx:設定查詢方式以及uart的時鐘源。

ufconx:是否使用fifo之類的方式。

umconx:是否使用流控

ubrdivx:設定uart的波特率,

一般有兩類:一種是標準的串列埠波特,為921600的約數,如300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200

另一種是非標準波特率,若使用非標準波特率,便需要更換晶振。

utrstatx:根據其判斷uart暫存器裡是否已經傳送資訊或者是否接收到資訊,即判斷uart的傳送或接收暫存器是否為空。

當我們使用uart傳輸資料時,我們將資料寫入傳送資料暫存器(即transmit buffer register)中,傳送控制器(control unit)便會自動將資料載入到傳送移位暫存器(transmit shifter)中,再通過串列埠線txd,將資料一位一位地傳送出去,當資料從傳送資料暫存器(即transmit buffer register) 轉移到移位暫存器(transmit shifter),便會改變狀態暫存器utrstat的數值,表示資料已傳送成功。

與之類似的,接收資料便是從串列埠線rxd將資料一位一位地輸入到接收移位暫存器(receive shifter)中,然後自動地轉移資料到接收資料暫存器(receive buffer register)中,並改變狀態暫存器utrstat的數值,最後可通過相關命令進行讀取。

ps:一般而言,uart的傳輸是通過了ttl電平來進行資料傳輸,但ttl電平為3.3v,它通訊距離一般在40cm左右,所以在實際使用中得把ttl電平轉為別的,可分為以下兩種情況:

1、ttl轉usb,其電平轉換晶元可大致分為以下幾類:

(1)ch340 **低,效能好;

(4)ft232:**20塊左右,質量最好。

2.ttl轉rs232

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 當要傳送...

基於S3C2440的bootloader移植詳解

首先 在彙編中初始化堆疊,中斷向量表,mmu,時鐘,串列埠等,然後跳到c語言的main函式。這部分 小於4k,放在block0。這個main函式用來將第二段 拷備到dram中並執行。不說這麼多廢話了,說多了無益,讓我們一起來揭開bootloader的神秘的面紗吧!先說下我移植的bootloader的...