北航-嵌入式實驗_第1頁
北航-嵌入式實驗_第2頁
北航-嵌入式實驗_第3頁
北航-嵌入式實驗_第4頁
北航-嵌入式實驗_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1實驗一 串口通訊實驗2實驗?zāi)康膶嶒災(zāi)康膌掌握掌握ARM的串口工作原理的串口工作原理l掌握掌握S3C2410寄存器配置方法寄存器配置方法l學(xué)習(xí)編程實現(xiàn)學(xué)習(xí)編程實現(xiàn)ARM的的UART通訊通訊3實驗內(nèi)容實驗內(nèi)容l實現(xiàn)查詢方式串口的收發(fā)功能實現(xiàn)查詢方式串口的收發(fā)功能 接收來自串口(通過超級終端)的字符接收來自串口(通過超級終端)的字符并將接收到的字符發(fā)送到超級終端并將接收到的字符發(fā)送到超級終端 ,并,并進一步改進程序,實現(xiàn)電腦鍵盤的功能進一步改進程序,實現(xiàn)電腦鍵盤的功能 4第一部分第一部分 串口通訊簡介串口通訊簡介5異步串行通訊協(xié)議簡介異步串行通訊協(xié)議簡介l每個字符一位接一位每個字符一位接一位(例如

2、先低位、后高位例如先低位、后高位)地傳送。地傳送。l減少信號連線,最少用一對線即可進行。減少信號連線,最少用一對線即可進行。l接收方對于同一根線上一連串的數(shù)字信號,首先要接收方對于同一根線上一連串的數(shù)字信號,首先要分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作。,雙方必須協(xié)調(diào)工作。l在微型計算機中大量使用異步串行在微型計算機中大量使用異步串行I/O 方式,雙方使方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差用各自的時鐘信號,而且允許時鐘頻率有一定誤差,因此實現(xiàn)較容易。但是由于每個字符都要獨立確,因此實現(xiàn)較容易。但是由于每個字

3、符都要獨立確定起始和結(jié)束定起始和結(jié)束(即每個字符都要重新同步即每個字符都要重新同步),字符和字,字符和字符間還可能有長度不定的空閑時間,因此效率較低符間還可能有長度不定的空閑時間,因此效率較低。6DB-25 DB-9引腳定義7DB-25 DB-9引腳說明8RS-232C接口通信的兩種基本連接方式TxRxSG9異步串行通訊示意圖異步串行通訊示意圖lUART:Universal Asynchronous Receiver and Transmitter5-8位經(jīng)過一段隨機的經(jīng)過一段隨機的時間后,下一個時間后,下一個字符開始傳送才字符開始傳送才又發(fā)出起始位。又發(fā)出起始位。空閑狀態(tài)10信號電平規(guī)定信號

4、電平規(guī)定lRS232電平:雙極性信號邏輯電平電平:雙極性信號邏輯電平, 它是一套負邏輯它是一套負邏輯定義定義l-3V到到-15V之間的電平表示邏輯之間的電平表示邏輯“1”l+0V到到+15V之間的電平表示邏輯之間的電平表示邏輯“0”lTTL電平:計算機內(nèi)部電平:計算機內(nèi)部(S3C2410)使用使用TTL電平電平l輸出:輸出:L: 2.4Vl輸入:輸入:L:2.0Vl電平轉(zhuǎn)換電路:常用專門的電平轉(zhuǎn)換電路:常用專門的RS-232接口芯片,如接口芯片,如max3232、SP3220等,在等,在TTL電平和電平和EIA電平之間電平之間實現(xiàn)相互轉(zhuǎn)換。實現(xiàn)相互轉(zhuǎn)換。11第二部分第二部分 配置相關(guān)寄存器配置

5、相關(guān)寄存器12在實驗平臺上操縱串口在實驗平臺上操縱串口l嵌入式開發(fā)基本思想嵌入式開發(fā)基本思想l處理器類型處理器類型l相關(guān)寄存器功能相關(guān)寄存器功能l編程實現(xiàn)編程實現(xiàn)13嵌入式開發(fā)基本思想嵌入式開發(fā)基本思想l從寄存器中來,到寄存器中去。從寄存器中來,到寄存器中去。程序寄存器協(xié)議數(shù)據(jù)控制引腳外圍設(shè)備14操縱哪些寄存器操縱哪些寄存器l與處理器有關(guān)與處理器有關(guān)本實驗平臺使用三星本實驗平臺使用三星S3C2410。l閱讀芯片手冊了解技術(shù)細節(jié)閱讀芯片手冊了解技術(shù)細節(jié)15如何閱讀如何閱讀DataSheetl根據(jù)目錄閱讀感興趣的內(nèi)容根據(jù)目錄閱讀感興趣的內(nèi)容l產(chǎn)品概覽產(chǎn)品概覽l各部分模塊各部分模塊lUARTl分功能

6、模塊講解分功能模塊講解l注意基本操作流程注意基本操作流程l注意寄存器的用法注意寄存器的用法S3C241016S3C2410異步串行口控制器lS3C2410自帶三個異步串行口控制器自帶三個異步串行口控制器l每個控制器有每個控制器有16字節(jié)的字節(jié)的FIFO(先入先出寄存器)(先入先出寄存器)l最大波特率最大波特率115.2Kl每個每個UART有有7種狀態(tài):溢出錯誤,校驗錯誤,幀錯種狀態(tài):溢出錯誤,校驗錯誤,幀錯誤,暫停態(tài),接收緩沖區(qū)準(zhǔn)備好,發(fā)送緩沖區(qū)空,誤,暫停態(tài),接收緩沖區(qū)準(zhǔn)備好,發(fā)送緩沖區(qū)空,發(fā)送移位緩沖器空,這些狀態(tài)可以由相應(yīng)的發(fā)送移位緩沖器空,這些狀態(tài)可以由相應(yīng)的UTRSTATn或或UER

7、STATn寄存器表示,并且與發(fā)送寄存器表示,并且與發(fā)送接收緩沖區(qū)相對應(yīng)的有錯誤緩沖區(qū)接收緩沖區(qū)相對應(yīng)的有錯誤緩沖區(qū)17lULCONn:線路控制寄存器lUCONn :UART控制寄存器lUBRDIVn :波特率因子設(shè)定寄存器lUFCONn :FIFO控制寄存器*lUMCONn: 調(diào)制解調(diào)器控制器*lUTRSTATn :讀寫狀態(tài)寄存器 lUERSTATn :錯誤狀態(tài)寄存器*lUFSTATn: FIFO狀態(tài)寄存器*lUMSTATn: 調(diào)制解調(diào)器狀態(tài)寄存器*lUTXH :數(shù)據(jù)發(fā)送寄存器lURXH :數(shù)據(jù)接收寄存器 ARMARM串行口寄存器串行口寄存器18ULCONULCONn n 線路控制寄存器線路控

8、制寄存器19控制寄存器UCONn20FIFO控制寄存器UFCONn21狀態(tài)寄存器狀態(tài)寄存器UTRSTATn22發(fā)送寄存器發(fā)送寄存器UTXHn和接收寄存器和接收寄存器URXHn23波特率因子寄存器波特率因子寄存器UBRDIVn24計算波特率l波特率的大小可以通過設(shè)置波特率寄存器(波特率的大小可以通過設(shè)置波特率寄存器(UBRDIVn)控制,計算公式如下:)控制,計算公式如下: 使用使用PCLK時的計算公式如下:時的計算公式如下:UBRDIVn = (int)PCLK/(波特率波特率16)1使用使用UCLK時的計算公式如下:時的計算公式如下:UBRDIVn = (int)UCLK/(波特率波特率16

9、)1 l例如:使用例如:使用PCLK,在,在40 MHz的情況下,當(dāng)波特率的情況下,當(dāng)波特率取取115 200 bps時,時,UBRDIVn = (int)40000000/(11520016)1 = 2025串口初始化流程l設(shè)置波特率分頻寄存器設(shè)置波特率分頻寄存器 公式:公式:UBRDIVn = (int)(PCLK/(bps x 16) ) -1 PCLK的獲得方法在目標(biāo)板初始化中有,的獲得方法在目標(biāo)板初始化中有,P237可參考可參考l配置配置io端口(把端口(把io口配置成口配置成uart模式)模式) 參見參見2410芯片手冊芯片手冊273頁頁port H端口控制寄存器說明端口控制寄存器

10、說明l設(shè)置串口時鐘設(shè)置串口時鐘 參見參見2410芯片手冊芯片手冊239頁時鐘控制寄存器。頁時鐘控制寄存器。l配置配置fifo 參見參見2410芯片手冊芯片手冊315頁頁uart fifo控制寄存器控制寄存器l使能串口使能串口262410寄存器在寄存器在C語言中的讀寫方法語言中的讀寫方法l32位位arm處理器處理器寄存器映射到存儲器空間寄存器映射到存儲器空間l#define _REG(x)(*(volatile unsigned int*)(x)pVolatile防止編譯器優(yōu)化防止編譯器優(yōu)化#define rTCFG0_REG(0 x51000000) /宏定義宏定義Read:unsigned

11、int tcfg = rTCFG0;Write:rTCFG0 = xxxx;set_gpio_ctrl(x) /設(shè)置設(shè)置IO口口l#define GPIO_MODE_IN(0 GPIO_MODE_SHIFT)l#define GPIO_MODE_OUT(1 GPIO_MODE_SHIFT)l#define GPIO_MODE_ALT0(2 GPIO_MODE_SHIFT)l#define GPIO_MODE_ALT1(3 GPIO_MODE_SHIFT)l#define GPIO_PULLUP_EN(0 GPIO_PULLUP_SHIFT)l#define GPIO_PULLUP_DIS(1

12、GPIO_PULLUP_SHIFT) l#define GPIO_H0MAKE_GPIO_NUM(PORTH_OFS, 0)l#define GPIO_H1MAKE_GPIO_NUM(PORTH_OFS, 1)l#define GPIO_H2MAKE_GPIO_NUM(PORTH_OFS, 2)l例如:例如:set_gpio_ctrl(GPIO_MODE_ALT0 | GPIO_H2 | GPIO_PULLUP_DIS););27第三部分第三部分 編程實現(xiàn)編程實現(xiàn)28程序說明l串口初始化函數(shù)串口初始化函數(shù) int serial_init(int ndev, int baudrate) (serial-2410.c)l接收數(shù)據(jù)接收數(shù)據(jù) char Uart_Getchn(char* Revdata, int Uartnum, int timeout) /接收數(shù)據(jù)接收數(shù)據(jù) RdURXH0() /讀取串口數(shù)據(jù)寄存器數(shù)據(jù)讀取串口數(shù)據(jù)寄存器數(shù)據(jù)l發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù) void Uart_Sen

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論