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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、模塊講解分功能模塊講解l注意基本操作流程注意基本操作流程l注意寄存器的用法注意寄存器的用法S3C241016S3C2410異步串行口控制器lS3C2410自帶三個(gè)異步串行口控制器自帶三個(gè)異步串行口控制器l每個(gè)控制器有每個(gè)控制器有16字節(jié)的字節(jié)的FIFO(先入先出寄存器)(先入先出寄存器)l最大波特率最大波特率115.2Kl每個(gè)每個(gè)UART有有7種狀態(tài):溢出錯(cuò)誤,校驗(yàn)錯(cuò)誤,幀錯(cuò)種狀態(tài):溢出錯(cuò)誤,校驗(yàn)錯(cuò)誤,幀錯(cuò)誤,暫停態(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ū)相對(duì)應(yīng)的有錯(cuò)誤緩沖區(qū)接收緩沖區(qū)相對(duì)應(yīng)的有錯(cuò)誤緩沖區(qū)17lULCONn:線路控制寄存器lUCONn :UART控制寄存器lUBRDIVn :波特率因子設(shè)定寄存器lUFCONn :FIFO控制寄存器*lUMCONn: 調(diào)制解調(diào)器控制器*lUTRSTATn :讀寫狀態(tài)寄存器 lUERSTATn :錯(cuò)誤狀態(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計(jì)算波特率l波特率的大小可以通過設(shè)置波特率寄存器(波特率的大小可以通過設(shè)置波特率寄存器(UBRDIVn)控制,計(jì)算公式如下:)控制,計(jì)算公式如下: 使用使用PCLK時(shí)的計(jì)算公式如下:時(shí)的計(jì)算公式如下:UBRDIVn = (int)PCLK/(波特率波特率16)1使用使用UCLK時(shí)的計(jì)算公式如下:時(shí)的計(jì)算公式如下:UBRDIVn = (int)UCLK/(波特率波特率16

9、)1 l例如:使用例如:使用PCLK,在,在40 MHz的情況下,當(dāng)波特率的情況下,當(dāng)波特率取取115 200 bps時(shí),時(shí),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芯片手冊(cè)芯片手冊(cè)273頁頁port H端口控制寄存器說明端口控制寄存器

10、說明l設(shè)置串口時(shí)鐘設(shè)置串口時(shí)鐘 參見參見2410芯片手冊(cè)芯片手冊(cè)239頁時(shí)鐘控制寄存器。頁時(shí)鐘控制寄存器。l配置配置fifo 參見參見2410芯片手冊(cè)芯片手冊(cè)315頁頁uart fifo控制寄存器控制寄存器l使能串口使能串口262410寄存器在寄存器在C語言中的讀寫方法語言中的讀寫方法l32位位arm處理器處理器寄存器映射到存儲(chǔ)器空間寄存器映射到存儲(chǔ)器空間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第三部分第三部分 編程實(shí)現(xiàn)編程實(shí)現(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論