freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于bios的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-05-12 13:23本頁(yè)面

【導(dǎo)讀】復(fù)雜的高端應(yīng)用對(duì)嵌入式處理器的性能提出了更高的要求。雖然以8位單片機(jī)為核心的。能嵌入式的發(fā)展需求。擠壓原先由8位微控制器主導(dǎo)的應(yīng)用空間。隨著ARM處理器在全球范圍的流行,32位。的RISC嵌入式處理器已經(jīng)開(kāi)始成為高中端嵌入式應(yīng)用和設(shè)計(jì)的主流。本課題在認(rèn)真學(xué)習(xí)和了解ARM應(yīng)用系統(tǒng)及其指令系統(tǒng)、開(kāi)發(fā)流程和工作原。理的基礎(chǔ)上,實(shí)現(xiàn)ARM與PC機(jī)的串口通訊功能。實(shí)現(xiàn)手段:以ARM7TDMI為內(nèi)核

  

【正文】 傳輸移位器 傳輸 FIFO( 16 字節(jié)) 波特率發(fā)生器 接收器 接收轉(zhuǎn)換器 接收 FIFO( 16 字節(jié)) 控制單元 外圍總線(xiàn) TxDn Clock Source RxDn 南京師范大學(xué)電氣與自動(dòng)化工程學(xué)院 基于 BIOS 的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā) 18 奇偶校驗(yàn)?zāi)J? [5: 3] 該位確定奇偶如何產(chǎn)生和校驗(yàn) 0xx:無(wú)校 驗(yàn)位 100:奇校驗(yàn) 101:偶校驗(yàn) 110:校驗(yàn)位強(qiáng)制 /檢測(cè)置 1 111:校驗(yàn)位強(qiáng)制 /檢測(cè)置 0 000 停止位的數(shù)量 [2] 該位確定停止位的個(gè)數(shù), 0: 1 位停止位 1: 2 位停止位 0 數(shù)據(jù)位長(zhǎng)度 [1: 0] 該位確定數(shù)據(jù)位的個(gè)數(shù) 00: 5 位 01: 6 位 10: 7 位 11: 8 位 00 表 32 UART 控制寄存器位定義 UCONn 位 描 述 初始值 發(fā)送中斷類(lèi)型 [9] 發(fā)送中斷請(qǐng)求類(lèi)型 0:脈沖(在發(fā)送緩沖區(qū)變空時(shí)立即引發(fā)中斷) 1:電平(在發(fā)送緩沖區(qū)為空時(shí)引發(fā)中斷) 0 接收中斷類(lèi)型 [8] 接收中斷請(qǐng)求類(lèi)型 0:脈沖(接收緩沖區(qū)接收到數(shù)據(jù)時(shí)立即引發(fā)中斷) 1:電平(接收緩沖區(qū)正在接收數(shù)據(jù)時(shí)引發(fā)中斷) 0 接收超時(shí)中斷使能 [7] 在 UART 的 FIFO 使能的情況下, 使 能 /禁止接收超時(shí)中斷 0:禁止 1:使能 0 接收錯(cuò)誤狀態(tài)中斷使能 [6] 使能 UART 在接收操作中發(fā)生錯(cuò)誤時(shí)的錯(cuò)誤中斷響應(yīng) 0:不產(chǎn)生錯(cuò)誤狀態(tài)中斷 1:產(chǎn)生錯(cuò)誤狀態(tài)中斷 0 回送模式 [5] 該位使 UART 自動(dòng)進(jìn)入回送模式 0:正常操作 1:回送模式 0 發(fā)送中止信號(hào) [4] 該位將引發(fā) UART 在一幀時(shí)間內(nèi)發(fā)送中止信 號(hào),該信號(hào)發(fā)送完后,該位自動(dòng)被清除 0:正常操作 1:發(fā)送中止信號(hào) 0 發(fā)送模式 [3: 2] 這兩位決定當(dāng)前哪個(gè)功能項(xiàng)能夠向 UART 發(fā)送保持寄存器寫(xiě)入發(fā)送數(shù)據(jù) 00:禁止 01:中斷請(qǐng)求或輪流檢測(cè)模式 10: BDMA0 請(qǐng)求(僅對(duì) UART0) 11: BDMA1 請(qǐng)求(僅對(duì) UART1) 00 接收模式 [1: 0] 這兩位決定當(dāng)前哪個(gè)功能項(xiàng)能夠從 UART 接收保持寄存器中讀出接收數(shù)據(jù) 00:禁止 01:中斷請(qǐng)求或輪流檢測(cè)模式 10: BDMA0 請(qǐng)求(僅對(duì) UART0) 11: BDMA1 請(qǐng)求(僅對(duì) UART1) 00 表 33 Modem 控制寄存器 UMCONn 位 描 述 初始值 保留 [7: 5] 這 3 位必須為 0 000 自動(dòng)流控制 [4] AFC 是否允許 0:禁止 1:使能 0 保留 [3: 1] 這 3 位必須為 0 000 請(qǐng)求發(fā)送 0 如果 AFC 允許,該位忽略;如果 AFC 禁止,必須由軟件來(lái)控制 nRTS 。 0:高電平(不激活 nRTS) 1:低電平(激活 nRTS) 0 表 34 發(fā)送 /接收狀態(tài)寄存器 UTRSTATn 位 描 述 初始值 發(fā)送移位寄存器為空 [2] 當(dāng)發(fā)送移位寄存器中不包含有效數(shù)據(jù)或移 位寄存器為空,該位自動(dòng)被置位。 0:非空 1:發(fā)送保持和移位寄存器為空 1 發(fā)送緩沖器位空 [1] 當(dāng)發(fā)送緩沖區(qū)寄存器中不包含有效數(shù)據(jù),這一位將自動(dòng)被置位。 0:緩沖區(qū)寄存器非空 1:空 1 南京師范大學(xué)電氣與自動(dòng)化工程學(xué)院 基于 BIOS 的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā) 19 如果使用了 FIFO,則用戶(hù)不用檢測(cè)這位,而應(yīng)當(dāng)檢測(cè)UFSTAT 中發(fā)送 FIFO 計(jì)數(shù)器位和 FIFO 滿(mǎn)位 接收緩沖器數(shù)據(jù)準(zhǔn)備好 [0] 當(dāng)接收緩沖器寄存器中包含了有效數(shù)據(jù),這一位將自動(dòng)被置位。 0:完全為空 1:緩沖區(qū)寄存器中包含有效數(shù)據(jù) 如果使用了 FIFO 則用戶(hù)不用檢測(cè)這個(gè)位,而應(yīng)當(dāng)檢測(cè)UFSTAT 中接收 FIFO 計(jì)數(shù)器位 0 E. 電路原理圖 圖 35 UART 的硬件原理圖 (a) 圖 36 UART 的硬件原理圖 (b) 南京師范大學(xué)電氣與自動(dòng)化工程學(xué)院 基于 BIOS 的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā) 20 S3C44B0X UART 數(shù)據(jù)接收和發(fā)送設(shè)計(jì) S3C44B0X UART 開(kāi)發(fā)板支持異步,全雙工通信。 A. 程序流程圖: 圖 37 UART數(shù)據(jù)程序流程圖 B. 程序?qū)崿F(xiàn) S3C44B0X 的串行應(yīng)用接口電路中的 PC1 PC1 PE PE2 是多功能 I/O 口,因此在編寫(xiě)串口數(shù)據(jù)收發(fā)程序之前,首 先需要對(duì) PC 口和 PE 口的工作模式進(jìn)行設(shè)置。 PC、PE 口通過(guò)以下語(yǔ)句進(jìn)行設(shè)置: rPCONC = 0x5f55ff55。 rPUPC = 0xffff。 rPCONE = 0x1556b。 rPUPE = 0xff。 要使 UART 能工作還必須對(duì) UART 的可配置參數(shù)進(jìn)行初始化,使其能夠按照所要求的通信方式進(jìn)行通信。對(duì) UART 口進(jìn)行初始化的設(shè)置程序如下。 void uart_init(int mclk, int baud) { int i。 if(mclk == 0) mclk = MCLK。 /**** UART0 ****/ 開(kāi)始 串口初始化, 中斷初始化 電 腦發(fā)送數(shù)據(jù)到串口 串口發(fā)送數(shù)據(jù)到電腦 結(jié)束 南京師范大學(xué)電氣與自動(dòng)化工程學(xué)院 基于 BIOS 的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā) 21 rULCON0 = 0x03。 /* normal/no parity/1 stop bit/8 bits data */ rUCON0 = 0x45。 /* Tx plus/Rx plus/forbid Rx overtime interrupt*/ /*allow UART fault interrupt/normal run mode/normal transmit*/ /*Transmit Mode interrupt or polling/Receive Mode interrupt or polling*/ rUFCON0 = 0x0。 /*forbid FIFO*/ rUMCON0 = 0x0。 /*forbid AFC */ rUBRDIV0 = ( (int)(mclk/16./baud + ) 1)。 /**** UART1 ****/ rULCON1 = 0x03。 rUCON1 = 0x45。 rUFCON1 = 0x0。 rUMCON1 = 0x0。 rUBRDIV1 = ( (int)(mclk/16./baud +) 1)。 for(i=0。 i100。 i++)。 } 至此, UART 初始化完成,要 UART 接收和發(fā)送數(shù)據(jù)還需要一些函數(shù)才可以實(shí)現(xiàn),包括接收一個(gè)字符函數(shù),發(fā)送一個(gè)字符函數(shù),接收一個(gè)字符串函數(shù)和發(fā)送一個(gè)字符串函數(shù)。下面是函數(shù)的具體實(shí)現(xiàn): 接收一個(gè)字符 char SerialGetChar (int port) { if(port == 0) {while(!(rUTRSTAT0 amp。 0x1))。 //Receive data read return rURXH0。 } else {while(!(rUTRSTAT1 amp。 0x1))。 //Receive data ready return rURXH1。 } } 發(fā)送一個(gè)字符 void SerialSendChar (int port,char ch) { if(port == 0) {if(ch == 39。\n39。) { while(!(rUTRSTAT0 amp。 0x2))。 rUTXH0 = 39。\r39。 } else while(!(rUTRSTAT0 amp。 0x2))。 rUTXH0 = ch。 } 南京師范大學(xué)電氣與自動(dòng)化工程學(xué)院 基于 BIOS 的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā) 22 else if(port == 1) {if(ch == 39。\n39。) {while(!(rUTRSTAT1 amp。 0x2))。 rUTXH1 = 39。\r39。 } while(!(rUTRSTAT1 amp。 0x2))。 rUTXH1 = ch。 } } 接收一個(gè)字符串 void SerialGetString (int port,char *string) { char c。 while((c=SerialGetChar(port))!=39。\r39。) { *string++=c。 } } 發(fā)送一個(gè)字符串 void SerialPrintf (char *fmt,...) { va_list ap。 char string[512]。 va_start(ap,fmt)。 vsprintf(string,fmt,ap)。 SerialSendString(0,(char *)string)。 va_end(ap)。 } 調(diào)試過(guò)程及問(wèn)題解決 當(dāng)發(fā)送單 個(gè)字符時(shí),在 sendch(char ch)函數(shù)中可以使用 Delay 函數(shù)延時(shí)以消除終端設(shè)備的響應(yīng)時(shí)間問(wèn)題,但是,如果發(fā)送一個(gè)字符串時(shí),調(diào)用 sendch(char ch)函數(shù)時(shí)則不可有 Delay 函數(shù),否則發(fā)送的字符串會(huì)因?yàn)檠訒r(shí)而數(shù)據(jù)丟失。 將接收到的字符串發(fā)送出去時(shí),要定義一個(gè)全局?jǐn)?shù)組,把接收到的字符串存在這個(gè)數(shù)組內(nèi);或者可以在 Main 函數(shù)內(nèi)定義一個(gè)指針 p 和一個(gè)數(shù)組 a[100],其中 p 指向 a,用指針?lè)绞奖4娼邮盏臄?shù)據(jù)。 第 S3C44B0X 中斷控制器功能及應(yīng)用開(kāi)發(fā) CPU 與外設(shè)之間傳輸數(shù)據(jù)的控制方式通常由 3 種 :查詢(xún)方式、 中斷 方式和 DMA 方式。為節(jié)省 CPU 時(shí)間,提高 CPU 的利用率,通常采用中斷方式。中斷在嵌入式系統(tǒng)中應(yīng)用很廣泛。 S3C44B0X 中斷介紹 S3C44B0X 具有 30 個(gè)中斷源,包括 1 個(gè)看門(mén)狗定時(shí)器, 6 個(gè)定時(shí)器, 6 個(gè) UART, 8南京師范大學(xué)電氣與自動(dòng)化工程學(xué)院 基于 BIOS 的嵌入式系統(tǒng)數(shù)據(jù)通訊開(kāi)發(fā) 23 個(gè)外部, 4 個(gè) DMA, 2 個(gè) RTC, 1 個(gè) ADC, 1 個(gè) IIC 和 1 個(gè) SIO 共 30 個(gè)中斷, S3C44B0X內(nèi)置的中斷控制器可以接收來(lái)自 30 個(gè)中斷源的請(qǐng)求。在這些中斷源中,有 4 個(gè)外部中斷( EINT4/5/6/7)是邏輯 “或 ”的關(guān)系,他們共用一條中斷請(qǐng)求線(xiàn)。 UART0 和 UART1 的錯(cuò)誤中斷也是邏輯 “或 ”的關(guān)系。 A. 中斷控制器 中斷控制器的任務(wù)是在片內(nèi)外圍和外部中斷源組成的多重中斷發(fā)生時(shí),經(jīng)過(guò)優(yōu)先級(jí)判斷選擇其中一個(gè)中斷,通過(guò) FIQ 或 IRQ 向 ARM7 TDMI 內(nèi)核發(fā)出 FIQ 和 IRQ 中斷請(qǐng)求。 B. S3C44B0X 中斷控制器的操作 a) 程序狀態(tài)寄存器的 F 位和 I 位 如果 CPSR 程序狀態(tài)寄存器的 F 位 被設(shè)置為 1,那么 CPU 將不接收來(lái)自中斷控制器的 FIQ(快速中斷請(qǐng)求);如果 CPSR 程序狀態(tài)寄存器的 I 位被設(shè)置為 1,那么 CPU 將不接收來(lái)自中斷控制器的 IRQ(通用中斷請(qǐng)求)。因此,為了使能 FIQ 和 IRQ,必須 先將 CPSR 程序狀態(tài)寄存器的 F 位和 I 位清 0,并且中斷屏蔽寄存器 INTMASK 中相應(yīng)的位也要清 0。 b) 中斷模式 ARM7TDMI 提供了 2 種中斷模式( INTMOD): FIQ 模式和 IRQ 模式。所有的中斷源在中斷請(qǐng)求時(shí)都要確定使用哪一種中斷模式。 IRQ 和 FIQ 之間的區(qū)別是:對(duì)于 FIQ 必須盡快處理事件并離開(kāi)這個(gè)模式: IRQ 可以被 FIQ 中斷,但 IRQ 不能中斷 FIQ;為了使FIQ 更快, FIQ 模式具有更多的私有寄存器。 c) 中斷掛起寄存器 中斷掛起寄存器( INTPND)用于指示對(duì)應(yīng)的中斷是否被激活。 INTPND 寄存器中的 26 個(gè)位 對(duì)應(yīng)著每一個(gè)中斷源。當(dāng)某個(gè)中斷產(chǎn)生時(shí), INTPND 中的相應(yīng)為就會(huì)置 1,說(shuō)明該中斷還未被處理。在中斷服務(wù)程序中,當(dāng)處理結(jié)束后必須及時(shí)清除該 pending 位,從而使系統(tǒng)能夠及時(shí)再次 響應(yīng) 該類(lèi)型的中斷。當(dāng)中斷掛起位被設(shè)置時(shí),只要相應(yīng)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1