嵌入式體系結構實驗4_第1頁
嵌入式體系結構實驗4_第2頁
嵌入式體系結構實驗4_第3頁
嵌入式體系結構實驗4_第4頁
嵌入式體系結構實驗4_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗四UART通信實驗1、實驗目的掌握S3c2410UART串口通信的工作原理掌握s3c2419串口初始化的方法掌握使用串口進行數據收、發的程序結構。了解通過串口通信進行設備控制的方法。2、實驗設備硬件:PC機,嵌入式系統實驗箱軟件:ADS1.2 或者 KEIL MDK3、實驗內容3.1 s3c2410 的 UART 模塊S3c2410處理器內部集成了 3個獨立的UART通信接口,UART0、UART1和UART2, 具有以下特征:所有的UART接口都可以選擇采用查詢、中斷或者DMA控制方式。各UART波特率的時鐘源可以選擇PCLK或者UCLK,通過配置波特率分頻系數, 通信采用的波特率可調,

2、最高可達230.4KPS。每個UART通信模塊都擁有16字節大小的收/發數據隊列各一個。內置紅外(IrDA)編碼器和解碼器,支持紅外工作模式。UART0和UART1配有nRTS和nCTS信號,支持握手傳輸方式。內部可檢測多種接收錯誤,包括幀覆蓋錯誤、奇偶校驗錯、幀格式錯、間斷狀態等, 并支持錯誤中斷請求。可通過編程配置幀格式、工作模式(AFC、回環模式、紅外模式)、FIFO、控制方 式選擇等等。UART應用編程,包括兩個部分,即UART初始化配置和UART通信控制。涉及的 底層特殊功能寄存器包括各種控制寄存器、狀態寄存器和數據寄存器。UART初始化過 程就是針對各種控制寄存器的初始化配置。利用

3、查詢方式進行通信控制方式,主要通過 查詢狀態寄存器,讀寫數據寄存器實現的。3.2 S3c2410 的 UART 模塊相關 SFRSFR名稱地址讀寫特性功能描述復位值控制寄存器ULCONnUARTn 基址+0讀/寫UART幀格式控制寄存器UCONnUARTn 基址+4UART控制寄存器UFCONnUARTn 基址+8UART收發隊列FIFO控制寄存器UMCONnUARTn 基址+CUART Modem控制寄存器UBRDIVnUARTn 基址+28UART波特率分頻系數寄存器狀態寄存器UTRSTATnUARTn 基址+10只讀UART發送/接收狀態寄存器UERSTATnUARTn 基址+14UAR

4、T錯誤狀態寄存器UFSTATnUARTn 基址+18UART收發隊列FIFO狀態寄存器UMSTATnUARTn 基址+1CUART Modem狀態寄存器數據寄存器按字節訪問,需要根據存儲器的端序,采用不同的訪問地址UTXH0UARTn基址+23 (大端對齊)UARTn基址+20 (小端對齊)只寫發送數據緩沖寄存器URXH0UARTn基址+27(大端對齊)UARTn基址+24 (小端對齊)只讀接收數據緩沖寄存器3.3 UART查詢方式收發原理通過查詢 UTRSTAT 寄存器的 Transmitter empty 位和 Receive buffer data ready 位,確定是否能夠向UTXH

5、n寫入數據和從URXHn讀取數據。圖2查詢方式進行接收4、實驗要求對給定的工程文件進行修改,逐步完成以下要求。4.1閱讀、理解、測試給定代碼重新編譯UART的ADS工程文件,將生成的目標二進制文件system.bin,通過vivi 的下載命令:load flash ucos x下載到實驗臺的flash存儲器ucos分區,然后執行命令boot smc ucos,執行剛剛下載的二進制文件。通過超級終端測試程序的執行情況,結合工程源文件的main.c源代碼,分析程序中 的兩個關鍵函數Uart_GetChn()和Uart_SendByten(),理解程序的實現原理。嘗試修改 main.c文件,練習對這

6、兩個函數的調用,嘗試完善以上兩個函數,以及熟悉ADS工程編 譯。4.2 UART初始化程序的編寫仔細分析給定的UART實驗代碼,會發現程序中并沒有對UART進行初始化,就直 接使用了,這是因為系統啟動時,vivi已經完成了對UART0 口的初始化,因此可以直接 使用UART0進行通信。修改實驗代碼,修改Uart_GetChn()和Uart_SendByten()的調用形式,改用UART1進 行數據的收、發。重新編譯工程、下載、運行目標代碼。在啟動運行后,將PC與實驗 臺的連接口改到UART1,進行數據收、發,觀察運行情況。是否能夠進行字符的收發 呢?如果不能,那么是什么原因呢?設計一個UART

7、的初始化子程序,根據傳遞的參數,完成對指定的UART 口的初始 化。如果感覺有困難,那么請參考vivi代碼archs3c2410Head.S文件中對UART進行 初始化的子程序InitUART,分析代碼中對每個UART控制寄存器初始配置的含義,就 利用這些值對UART1進行初始化,而后再通過UART1進行通信,測試程序的運行情況。 完成你的初始化程序,通過傳遞參數,實現對指定口按參數要求進行初始化(考慮設 計一個結構體,表達串口的波特率、通信幀格式和流控制屬性)。4.3編程實現字符串發送功能編寫一個子程序,通過指定串口,發送字符串,用于串口打印調試信息。子程序的形式可以定義為:Uart_print(int UartNum, char * ptr);通過將字符串的首

溫馨提示

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

評論

0/150

提交評論