




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、串口通信實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握ARM的串行口工作原理。2.學(xué)習(xí)編程實(shí)現(xiàn)ARM的UART通訊。3.掌握CPU利用串口通訊的方法。二、實(shí)驗(yàn)內(nèi)容學(xué)習(xí)串行通訊原理,了解串行通訊控制器,閱讀ARM芯片文檔,掌握ARM的UART相關(guān)寄存器的功能,熟悉ARM系統(tǒng)硬件的UART相關(guān)接口。編程實(shí)現(xiàn)ARM和計(jì)算機(jī)實(shí)現(xiàn)串行通訊:ARM監(jiān)視串行口,將接收到的字符再發(fā)送給串口(計(jì)算機(jī)與開發(fā)板是通過超級(jí)終端通訊的),即按PC鍵盤通過超級(jí)終端發(fā)送數(shù)據(jù),開發(fā)板將接收到的數(shù)據(jù)再返送給PC,在超級(jí)終端上顯示。三、實(shí)驗(yàn)原理介紹通信方式在通信過程中,如果通信僅在點(diǎn)對(duì)點(diǎn)之間進(jìn)行,或者點(diǎn)對(duì)多點(diǎn)之間進(jìn)行,那么,按消息傳輸?shù)姆较蚝蜁r(shí)間的不
2、同,可以將通信分為單工通信、全雙工通信以及半雙工通信。(1)單工消息只能單方向進(jìn)行傳輸?shù)囊环N通信方式稱為單工通信。如圖8-1所示,通信只能從A傳輸?shù)紹。這好比一條絕對(duì)方向的單行道路,不準(zhǔn)雙向通信也不能逆向行駛。在現(xiàn)代通信系統(tǒng)中,如模擬廣播電視系統(tǒng)(不包括現(xiàn)正在研究應(yīng)用的HFC雙向網(wǎng)絡(luò))、無(wú)線尋呼系統(tǒng)等。信號(hào)只能從廣播電視臺(tái)、無(wú)線尋呼中心發(fā)送到電視機(jī)接收機(jī)、BB機(jī)上。圖8-1 單工通信方式(2)全雙工全雙工通信是指通信雙方可以同時(shí)進(jìn)行雙向數(shù)據(jù)傳輸而互不影響的工作方式。如圖8-2所示,在這種工作方式下,通信雙方都可以同時(shí)進(jìn)行信息的發(fā)送和接收,因此,全雙工通信的信道必須是雙向信道。如果是有線的全雙工
3、方式,通信雙方會(huì)有兩根獨(dú)立的信號(hào)線分別傳輸發(fā)送信號(hào)和接收信號(hào),從而使得發(fā)送和接收可同時(shí)進(jìn)行。生活中的普通電話系統(tǒng)、移動(dòng)通信系統(tǒng)都是全雙工方式。圖8-2 雙工通信方式(3)半雙工這種方式允許數(shù)據(jù)傳輸做雙向操作,即不僅可以發(fā)送,亦可以接收信號(hào),但是,在同一時(shí)刻,只能進(jìn)行發(fā)送和接收任意一個(gè)操作。因此仍然只采用一個(gè)信道。如圖8-3所示,如果是有線通信,通信雙方只需要一根數(shù)據(jù)線連接,但是比全雙工方式耗時(shí)會(huì)更多。如對(duì)講機(jī)系統(tǒng)就是采用的半雙工通信方式。圖8-3 半雙通信方式串行同步通信與串行異步方式在通信過程中,發(fā)送方和接收方每次都只發(fā)送和接收一位數(shù)據(jù)的通信方式稱為串行通信方式。也就是說(shuō),在任意一個(gè)時(shí)刻,數(shù)
4、據(jù)線上僅有一位數(shù)據(jù)。在傳輸數(shù)據(jù)過程中,雙方需要協(xié)商時(shí)鐘信號(hào),即規(guī)定什么時(shí)候發(fā)送數(shù)據(jù)和接收數(shù)據(jù),以及每位數(shù)據(jù)所占用的時(shí)間寬度。根據(jù)雙方接收和發(fā)送數(shù)據(jù)所采用的時(shí)鐘信號(hào)是否是同一個(gè)時(shí)鐘源而分為串行異步通信方式和串行同步通信方式。串行異步通信方式中,通信雙方采用自己的時(shí)鐘信號(hào),根據(jù)信號(hào)的起始位等判斷信息,因此接收和發(fā)送僅需要兩根信號(hào)線分別用來(lái)傳送和接收信號(hào)。而串行同步通信方式中,由通信雙方的一方(或者另外設(shè)備)提供統(tǒng)一的時(shí)鐘信號(hào),在一定程序上提高通信速率,但這種通信方式需要額外的時(shí)鐘信號(hào)線。另外,這種通信方式不適合遠(yuǎn)距離傳輸,因?yàn)檫h(yuǎn)距離會(huì)使時(shí)鐘信號(hào)受到干擾,出現(xiàn)誤碼等現(xiàn)象。(1)串行異步通信方式在異步
5、傳輸模式下,傳輸數(shù)據(jù)以字符為單位,數(shù)據(jù)傳輸速率多在1.2kb/s以下。當(dāng)發(fā)送一個(gè)字符代碼時(shí):l 字符前面要加一個(gè)起始信號(hào),其長(zhǎng)度為一個(gè)碼元,極性為“0”,即空號(hào)極性。l 字符后面要加一個(gè)終止符號(hào),其長(zhǎng)度為1-2個(gè)碼元,極性為“1”,即傳號(hào)極性。加上起始終止信號(hào)后,即可區(qū)分出所傳輸?shù)淖址瑐魉蜁r(shí),字符可以連續(xù)發(fā)送,也可以單獨(dú)發(fā)送,不發(fā)字符時(shí)線路保持“1”狀態(tài),如圖8-4所示為起止式同步傳輸序列,每個(gè)字符由8bit組成,加上起止位,
6、信號(hào)共11位,兩字符之間的間隔長(zhǎng)度可以不固定。實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單。圖8-4 異步傳輸模式幀格式異步串行通信協(xié)議規(guī)定字符數(shù)據(jù)的傳輸規(guī)范總結(jié)起來(lái)有以下幾點(diǎn):起始位:通信線上沒有數(shù)據(jù)被傳送時(shí)處于邏輯“1”狀態(tài),當(dāng)發(fā)送設(shè)備要發(fā)送一個(gè)字符數(shù)據(jù)時(shí),首選發(fā)送一個(gè)邏輯“0”信號(hào),這個(gè)邏輯低電平就是起始位。起始位通過通信線傳向接收機(jī),接收設(shè)備檢測(cè)到這低電平后,就開始準(zhǔn)備接收數(shù)據(jù)位信號(hào)。起始位所起的作用就是使設(shè)備同步,通信雙方必需在傳送數(shù)據(jù)位前一致同步。數(shù)據(jù)位:當(dāng)接收設(shè)備收到起始位后,開始接收數(shù)據(jù)位。數(shù)據(jù)位的個(gè)數(shù)可以是5-9位,PC機(jī)中經(jīng)常采用7-8位數(shù)據(jù)傳送。在字符傳送過程中,數(shù)據(jù)位從最低有效位開始傳送,依次在接
7、收設(shè)備中被轉(zhuǎn)換為并行數(shù)據(jù)。奇偶校驗(yàn)位:數(shù)據(jù)位發(fā)送完后,為了保證數(shù)據(jù)的可靠性傳輸,常傳送奇偶校驗(yàn)位。奇偶校驗(yàn)用于有限差錯(cuò)檢測(cè)。如果選擇偶校驗(yàn),則數(shù)據(jù)位和奇偶位的邏輯“1”的個(gè)數(shù)必須為偶數(shù),相反,如果是奇校驗(yàn),邏輯“1”的個(gè)數(shù)為奇數(shù)。停止位:在奇偶位或者數(shù)據(jù)位(當(dāng)無(wú)奇偶校驗(yàn)時(shí))之后發(fā)送停止位。停止位是一個(gè)字符數(shù)據(jù)的結(jié)束,可以是1-2位的低電平,接收設(shè)備收到停止位后,通信線路便恢復(fù)邏輯“1”狀態(tài),直到下一個(gè)字符數(shù)據(jù)的起始位到來(lái)。波特率設(shè)置:通信線路上傳送的所有位信號(hào)都保持一致的信號(hào)持續(xù)時(shí)間,每一位的寬度都由數(shù)據(jù)的碼元傳送速率確定,而碼元速率是單位時(shí)間內(nèi)傳送的碼元的個(gè)數(shù),即波特率。(2)串行同步通信方
8、式在同步通信中,通信雙方使用同一個(gè)時(shí)鐘源,這個(gè)時(shí)鐘信號(hào)可以由通信方式的一方提供或者由第三方提供。其時(shí)序圖如圖8-5所示,所有要傳輸?shù)臄?shù)據(jù)都需要與此時(shí)鐘信號(hào)同步,即每個(gè)傳輸?shù)臄?shù)據(jù)所占用的時(shí)間寬度都需要與一個(gè)時(shí)鐘變換所用時(shí)間相等。即數(shù)據(jù)在時(shí)鐘跳變(上升沿和下降沿)后一段時(shí)間內(nèi)有效。相應(yīng)的,接收方根據(jù)時(shí)鐘跳變來(lái)確定何時(shí)接收一位數(shù)據(jù)。同步傳輸使用不同的方式來(lái)表示一次傳輸?shù)拈_始和結(jié)束。圖8-5 串行同步通信方式S3C2410芯片UART基于ARM9內(nèi)核架構(gòu)的嵌入式處理器的S3C2410的UART(Universal Asynchronous Receiver and Transmitter)單元擁有3個(gè)
9、SIO(saynchronous serial I/O),每個(gè)單元都可以工作在中斷模式以及DMA(Direct Memory Access)模式。UART最大速率可以達(dá)到230.4kbps。如果外部設(shè)備提供一個(gè)時(shí)鐘信號(hào),其可以工作在更新的通信速率。每個(gè)UART通道都包含兩個(gè)16bit的FIFO來(lái)接收和發(fā)送數(shù)據(jù)。S3C2410處理器的UART支持可編程波特率、IR(infra-red)傳輸,12位停止位,58位數(shù)據(jù)寬度,同時(shí)支持奇偶校驗(yàn)。S3C2410芯片UART結(jié)構(gòu)圖如圖8-11所示為S3C2410芯片UART結(jié)構(gòu)圖。圖8-11 S3C2410芯片UART結(jié)構(gòu)圖數(shù)據(jù)發(fā)送S3C2410芯片UAR
10、T支持可編程數(shù)據(jù)傳輸幀格式。在數(shù)據(jù)幀中包含起止位、58位數(shù)據(jù)位、一位奇偶校驗(yàn)位以及12位停止位。具體設(shè)置可以在控制寄存器(ULCONn)設(shè)置。同時(shí),傳輸裝置支持中斷方式,即在傳輸?shù)臅r(shí)候強(qiáng)制輸出邏輯0中斷信號(hào)。此中斷信號(hào)在完成一個(gè)字符傳輸后傳輸,之后傳輸器繼續(xù)傳輸數(shù)據(jù)至Tx FIFO。數(shù)據(jù)接收同理,接收器亦支持可編程方式,同樣包含起止位、58位數(shù)據(jù)位、一位奇偶校驗(yàn)位以及12位停止位,具體設(shè)置可以在控制寄存器(ULCONn)設(shè)置。接收器亦可以探測(cè)到數(shù)據(jù)溢出錯(cuò)誤、奇偶校驗(yàn)錯(cuò)誤、幀錯(cuò)誤以及中斷信號(hào),并且每種情況都可置相應(yīng)的錯(cuò)誤標(biāo)識(shí)。數(shù)據(jù)溢出錯(cuò)誤:在上一字符沒有接收完成時(shí)新的數(shù)據(jù)已經(jīng)到達(dá),從而覆蓋了原來(lái)
11、的數(shù)據(jù)。奇偶校驗(yàn)錯(cuò)誤:奇偶位不滿足奇偶條件。幀錯(cuò)誤:接收數(shù)據(jù)沒有有效的停止位。中斷信號(hào):RxDn輸出持續(xù)邏輯0信號(hào)(持續(xù)時(shí)間超過一幀)。功能寄存器(1)列控制寄存器S3C2410的UART單元包含三個(gè)列控制寄存器,分別是ULCON0, ULCON1和ULCON2。其說(shuō)明如表8-6所示。表8-6 列控制寄存器寄存器地址讀/寫說(shuō)明復(fù)位值ULCON00x50000000可讀/寫UART0列控制寄存器0x00ULCON10x50004000可讀/寫UART1列控制寄存器0x00ULCON20x50008000可讀/寫UART2列控制寄存器0x00ULCONn各位功能描述如表8-7所示。表8-7 ULC
12、ONn各位功能描述ULCONn位說(shuō)明初始化狀態(tài)保留位7 0紅外模式6設(shè)置是否采用紅外模式。0普通模式,1紅外模式0奇偶校驗(yàn)?zāi)J?:3設(shè)置在奇何偶校驗(yàn)?zāi)J椒绞剑?XX:無(wú);100奇校驗(yàn);101偶校驗(yàn);110強(qiáng)制為1;111強(qiáng)制為0。000停止位2設(shè)置每幀停止位位數(shù):01位停止位;1兩位停止位。0字長(zhǎng)度1:0設(shè)置每幀數(shù)據(jù)位長(zhǎng)度:005位、01=6位、10=7位、11=8位。0(2)控制寄存器S3C2410的UART單元包含三個(gè)控制寄存器,分別是UCON0, UCON1和UCON2。其說(shuō)明如表8-8所示。表8-8控制寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UCON00x50000004可讀/寫UA
13、RT0控制寄存器0x00UCON10x50004004可讀/寫UART1控制寄存器0x00UCON20x50008004可讀/寫UART2控制寄存器0x00UCONn各位功能描述如表8-9所示。表8-9 UCONn各位功能描述UCONn位說(shuō)明初始化狀態(tài)時(shí)鐘選擇10選擇時(shí)鐘來(lái)源。0=PCLK,1=UCLK。0Tx中斷類型9中斷請(qǐng)求類型。0Pulse。1Level。0Rx中斷類型8中斷請(qǐng)求類型。0Pulse。1Level。0Rx超時(shí)7禁止/允許接收超時(shí)終端。0=禁止;1允許。0接收錯(cuò)誤狀態(tài)中斷允許6當(dāng)產(chǎn)生異常時(shí)使能UART產(chǎn)生中斷中斷。如幀錯(cuò)誤、奇偶校驗(yàn)錯(cuò)誤、溢出錯(cuò)誤。0不產(chǎn)生,1產(chǎn)生。0回環(huán)模式
14、5設(shè)置是否進(jìn)入回環(huán)模式。0普通模式;1回環(huán)模式。0發(fā)送中斷信號(hào)4設(shè)置UART產(chǎn)生中斷信號(hào)。如果發(fā)出一個(gè)中斷后,此位將自動(dòng)清0。0普通傳輸,1發(fā)送中斷信號(hào)。0傳輸模式3:2決定當(dāng)前UART采用何種傳輸模式。00=禁止;01中斷或者輪流模式;10DMA0請(qǐng)求(UART0),DMA3請(qǐng)求(UART2);11DMA1請(qǐng)求(UART0)。00接收模式1:0決定當(dāng)前UART采用何種接收模式。00=禁止;01中斷或者輪流模式;10DMA0請(qǐng)求(UART0),DMA3請(qǐng)求(UART2);11DMA1請(qǐng)求(UART0)。00(3)FIFO控制寄存器S3C2410的UART單元包含三個(gè)FIFO控制寄存器,分別是U
15、FCON0, UFCON1和UFCON2。其說(shuō)明如表8-10所示。表8-10 FIFO控制寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UFCON00x50000008可讀/寫UART0 FIFO控制寄存器0x00UFCON10x50004008可讀/寫UART1 FIFO控制寄存器0x00UFCON20x50008008可讀/寫UART2 FIFO控制寄存器0x00ULCONn各位功能描述如表8-11所示。表8-11 UFCONn各位功能描述UFCONn位說(shuō)明初始化狀態(tài)Tx FIFO觸發(fā)方式7:6決定傳輸FIFO信號(hào)標(biāo)準(zhǔn)。00 =空,01 = 4-byte,10 = 8-byte,11 = 12-byte
16、。00Rx FIFO觸發(fā)方式5:4決定接收FIFO信號(hào)標(biāo)準(zhǔn)。00 = 4-byte,01 = 8-byte,10 = 12-byte,11 = 16-byte。00保留3 0Tx FIFO復(fù)位2自動(dòng)清零。0 = 一般模式 1= Tx FIFO復(fù)位。0Rx FIFO復(fù)位1自動(dòng)清零。0 = 一般模式 1= Tx FIFO復(fù)位。0FIFO使能00禁止,1使能。0(4)MODEM控制寄存器S3C2410的UART單元包含三個(gè)MODEM控制寄存器,分別是UMCON0, UMCON1和UMCON2。其說(shuō)明如表8-12所示。表8-12 MODEM控制寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UMCON00x
17、5000000C可讀/寫UART0 MODEM控制寄存器0x00UMCON10x5000400C可讀/寫UART1 MODEM控制寄存器0x00保留0x5000800C-保留-ULCONn各位功能描述如表8-13所示。表8-13 MODEM各位功能描述MODEMn位說(shuō)明初始化狀態(tài)保留7:5這些位必須為000AFC41使能,0禁止0保留3:1這些位必須為0000請(qǐng)求發(fā)送0如果使能AFC,此位將被忽略。S3C2410將自動(dòng)控制nRTS信號(hào)。如果禁止AFC。nRTS必須由軟件控制。0高電平,1低電平。0(5)Tx/Rx狀態(tài)寄存器S3C2410的UART單元包含三個(gè)Tx/Rx狀態(tài)寄存器,分別是UTRS
18、TAT 0, UTRSTAT1和UTRSTAT 2。其說(shuō)明如表8-14所示。表8-14 MODEM控制寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UTRSTAT00x50000010可讀UART0 Tx/Rx狀態(tài)寄存器0x6UTRSTAT 10x50004010可讀UART1 Tx/Rx狀態(tài)寄存器0x6UTRSTAT20x50008010可讀UART2 Tx/Rx狀態(tài)寄存器0x6UTRSTAT n各位功能描述如表8-15所示。表8-15 UTRSTATn各位功能描述UTRSTAT n位說(shuō)明初始化狀態(tài)傳輸裝置空2當(dāng)傳輸buffer寄存器沒有可用數(shù)據(jù)傳輸或者傳輸移位寄存器為空時(shí)自動(dòng)設(shè)置為1。0非空;1空。1傳
19、輸Buffer空1當(dāng)傳輸寄存器為空時(shí)自動(dòng)設(shè)置為1。0非空,1空。1接收Buffer數(shù)據(jù)準(zhǔn)備好0當(dāng)接收buffer寄存器有有效數(shù)據(jù)通過RxDn端口接收數(shù)據(jù)。0空,1有接收數(shù)據(jù)。0(6)錯(cuò)誤狀態(tài)寄存器S3C2410的UART單元包含三個(gè)錯(cuò)誤狀態(tài)寄存器,分別是UERSTAT0, UERSTAT1和UERSTAT2。其說(shuō)明如表8-16所示。表8-16 錯(cuò)誤狀態(tài)寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UERSTAT 00x50000014可讀UART0 錯(cuò)誤狀態(tài)寄存器0x0UERSTAT 10x50004014可讀UART1 錯(cuò)誤狀態(tài)寄存器0x0UERSTAT 20x50008014可讀UART2 錯(cuò)誤狀態(tài)寄存
20、器0x0UERSTAT n各位功能描述如表8-17所示。表8-17 UERSTAT n各位功能描述UERSTAT n位說(shuō)明初始化狀態(tài)保留30接收時(shí)無(wú)幀錯(cuò)誤;1幀錯(cuò)誤。0幀錯(cuò)誤2在接收操作時(shí)無(wú)論何時(shí)出現(xiàn)錯(cuò)誤將自動(dòng)置1。0無(wú)幀錯(cuò)誤。1幀錯(cuò)誤。0保留10無(wú)幀錯(cuò)誤。1幀錯(cuò)誤。0溢出錯(cuò)誤0無(wú)論何時(shí)發(fā)生溢出錯(cuò)誤將置此位為1。0無(wú)錯(cuò)誤。1溢出錯(cuò)誤。0(7)FIFO狀態(tài)寄存器S3C2410的UART單元包含三個(gè)FIFO狀態(tài)寄存器,分別是UFSTAT0, UFSTAT1和UFSTAT2。其說(shuō)明如表8-18所示。表8-18 FIFO狀態(tài)寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UFSTAT 00x50000018可讀UAR
21、T0 FIFO狀態(tài)寄存器0x00UFSTAT 10x50004018可讀UART1 FIFO狀態(tài)寄存器0x00UFSTAT 20x50008018可讀UART2 FIFO狀態(tài)寄存器0x00UFSTAT n各位功能描述如表8-19所示。表8-19 UFSTAT n各位功能描述UFSTAT n位說(shuō)明初始化狀態(tài)保留15:100接收時(shí)無(wú)幀錯(cuò)誤;1幀錯(cuò)誤。0Tx FIFO滿9如果傳送FIFO滿將自動(dòng)設(shè)置此位為1。00位Tx FIFO數(shù)據(jù)15位;1FULL。0Rx FIFO滿8如果接收FIFO滿將自動(dòng)設(shè)置此位為1。00位Tx FIFO數(shù)據(jù)15位;1FULL。0Tx FIFO計(jì)數(shù)器7:4Tx FIFO數(shù)據(jù)個(gè)
22、數(shù)。0Rx FIFO計(jì)數(shù)器3:0Rx FIFO數(shù)據(jù)個(gè)數(shù)。0(8)MODEM狀態(tài)寄存器S3C2410的UART單元包含三個(gè)MODEM狀態(tài)寄存器,分別是UMSTAT0, UMSTAT1和UMSTAT2。其說(shuō)明如表8-20所示。表8-18 MODEM狀態(tài)寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UMSTAT 00x5000001C可讀UART0 FIFO狀態(tài)寄存器0x00UMSTAT 10x5000401C可讀UART1 FIFO狀態(tài)寄存器0x00保留0x5000801C-保留-UMSTAT n各位功能描述如表8-20所示。表8-20 UMSTAT n各位功能描述UMSTAT n位說(shuō)明初始化狀態(tài)保留3
23、0;0Delta CTS2指示nCTS值相對(duì)于上次CPU讀取輸入狀態(tài)發(fā)生了改變。0沒有發(fā)生變化,1變化。0保留1 0發(fā)送清除00CTS信號(hào)沒有激活(高電平);1CTS激活(低電平)。0(9)傳輸緩沖寄存器S3C2410的UART單元包含三個(gè)傳輸緩沖寄存器,分別是UTXH0, UTXH1和UTXH2。其說(shuō)明如表8-21所示。表8-21 傳輸緩沖寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UTXH 00x50000020(L)0x50000023(B)可寫(字節(jié))UART0 傳輸緩沖寄存器 UTXH 10x50004020(L)0x50004023(B)可寫(字節(jié))UART1 傳輸緩沖寄存
24、器 UTXH20x50008020(L)0x50008023(B)可寫(字節(jié))UART2 傳輸緩沖寄存器 (10)接收緩沖寄存器S3C2410的UART單元包含三個(gè)接收緩沖寄存器,分別是URXH0, URXH1和URXH 2。其說(shuō)明如表8-22所示。表8-22 接收緩沖寄存器寄存器地址讀/寫說(shuō)明復(fù)位值URXH 00x50000024(L)0x50000027(B)可寫(字節(jié))UART0 接收緩沖寄存器 URXH 10x50004024(L)0x50004027(B)可寫(字節(jié))UART1 接收緩沖寄存器 URXH 20x50008024(L)0x5000
25、8027(B)可寫(字節(jié))UART2 接收緩沖寄存器 (11)波特率約數(shù)寄存器S3C2410的UART單元包含三個(gè)波特率約數(shù)寄存器,分別是UBRDIV0, UBRDIV1和UBRDIV2。其說(shuō)明如表8-232所示。表8-23 波特率約數(shù)寄存器寄存器地址讀/寫說(shuō)明復(fù)位值UBRDIV 00x50000028可讀/寫UART0 波特率約數(shù)寄存器 UBRDIV10x50004028可讀/寫UART1 波特率約數(shù)寄存器 UBRDIV 20x50008028可讀/寫UART2 接波特率約數(shù)寄存器 S3C2410串行接口硬件電路如圖8-13所示為S3C2410芯片UA
26、RT采用MAX3232進(jìn)行電平轉(zhuǎn)換,從而輸出RS232C標(biāo)準(zhǔn)信號(hào)的電路圖。MAX3232主要實(shí)現(xiàn)電平轉(zhuǎn)換功能。兩個(gè)DB9硬件接口(UART0、UART1)可以直接與計(jì)算機(jī)以及其它符合RS232C標(biāo)準(zhǔn)的串行接口直接相連。MAX3232左側(cè)的TXD0、RXD0、TXD1、RXD1分別與S3C2410芯片UART0和UART1相連。圖8-13S3C2410芯片UART接口電平轉(zhuǎn)換電路四、串行通信實(shí)驗(yàn)及C源代碼分析本處給出一個(gè)無(wú)操作系統(tǒng)支持的串行通信測(cè)試程序及源碼分析及試驗(yàn)步驟,此試驗(yàn)步驟以博創(chuàng)UP-NETARM2410為試驗(yàn)平臺(tái),其串行通信接口電路圖如圖8-11所示,軟件開發(fā)平臺(tái)為ADS1.2(AR
27、M Developer Suite v1.2)。如果讀者選用其它硬件平臺(tái),試驗(yàn)步驟可能略有差異。但是,此程序可以不經(jīng)過任何修改即可直接使用。因?yàn)椴捎脽o(wú)操作系統(tǒng)支持的方式編譯此程序,因此,此程序在上傳到試驗(yàn)箱時(shí)最好能夠有bootloader程序加載。當(dāng)然,讀者也可以采用直接燒寫的方式加載。根據(jù)圖8-11所示硬件電路,此硬件連接方式中每一個(gè)串口有兩根信號(hào)線(TXD和RXD)分別用來(lái)傳輸和發(fā)送數(shù)據(jù)。因此,本試驗(yàn)采用串口異步通信方式。與此程序相關(guān)的源代碼如下所示。(1)與UART相關(guān)的寄存器宏定義。l #define UART_C
28、TL_BASE 0x50000000 /*UART寄存器基地址 */l #define UART0_CTL_BASE UART_CTL_BASE /*UART0寄存器基地址 */l #define UART1_CTL_BASE UART_CTL_BAS
29、E + 0x4000 /*UART1寄存器基地址 */l #define UART2_CTL_BASE UART_CTL_BASE + 0x8000 /*UART2寄存器基地址 */l #define bUART(x, Nb) _REG(UART_CTL_BASE + (x)*0x4000 + (Nb)l
30、60; /* Offset */l #define oULCON 0x00 /* R/W, UART 線性控制寄存器 */l #define oUCON 0x04
31、/* R/W, UART 控制寄存器 */l #define oUFCON 0x08 /* R/W, UART FIFO控制寄存器 */l #define oUMCON 0x0C /* R
32、/W, UART modem 控制寄存器 */l #define oUTRSTAT 0x10 /* R , UART Tx/Rx狀態(tài)寄存器 */l #define oUERSTAT 0x14 /* R , UART Rx error狀態(tài)寄存器 */l
33、; #define oUFSTAT 0x18 /* R , UART FIFO 狀態(tài)寄存器 */l #define oUMSTAT 0x1C /* R , UART Modem 狀態(tài)寄存器*/l #def
34、ine oUTXHL 0x20 /* W, UART transmit(小端模式) buffer */l #define oUTXHB 0x23 /* W, UART transmit(大端模式) buffer */l
35、60; #define oURXHL 0x24 /* R , UART receive(小端模式) buffer */l #define oURXHB 0x27 /* R , UART r
36、eceive(大端模式) buffer */l #define oUBRDIV 0x28 /* R/W, 波特率約數(shù) 寄存器 */l /* Registers */l #define ULCON0
37、0; bUART(0, oULCON)l #define UCON0 bUART(0, oUCON)l #define UFCON0 bUART(0, oUFCON)l
38、60; #define UMCON0 bUART(0, oUMCON)l #define UTRSTAT0 bUART(0, oUTRSTAT)l #define UERSTAT0
39、0; bUART(0, oUERSTAT)l #define UFSTAT0 bUART(0, oUFSTAT)l #define UMSTAT0 bUART(0, oUMSTAT)l
40、60; #define UTXH0 bUART(0, oUTXHL)l #define URXH0 bUART(0, oURXHL)l #define UBRDIV0
41、; bUART(0, oUBRDIV)l #define ULCON1 bUART(1, oULCON)l #define UCON1 bUART(1, oUCO
42、N)l #define UFCON1 bUART(1, oUFCON)l #define UMCON1 bUART(1, oUMCON)l &
43、#160; #define UTRSTAT1 bUART(1, oUTRSTAT)l #define UERSTAT1 bUART(1, oUERSTAT)l #define UFSTAT1 bUAR
44、T(1, oUFSTAT)l #define UMSTAT1 bUART(1, oUMSTAT)l #define UTXH1 bUART(1, oUTXHL)l #define
45、 URXH1 bUART(1, oURXHL)l #define UBRDIV1 bUART(1, oUBRDIV)l #define ULCON2
46、60; bUART(2, oULCON)l #define UCON2 bUART(2, oUCON)l #define UFCON2 bUART(2, oUFCON)l
47、160; #define UMCON2 bUART(2, oUMCON)l #define UTRSTAT2 bUART(2, oUTRSTAT)l #define UERSTAT2
48、60; bUART(2, oUERSTAT)l #define UFSTAT2 bUART(2, oUFSTAT)l #define UMSTAT2 bUART(2, oUMSTAT)l
49、160; #define UTXH2 bUART(2, oUTXHL)l #define URXH2 bUART(2, oURXHL)l #define UBRDIV2
50、0; bUART(2, oUBRDIV)(2)發(fā)送一個(gè)字符l #define WrUTXH0(ch) (*(volatile unsigned char *) UTXH0)=(unsigned char)(ch)l #define WrUTXH1(ch) (*(volatile unsigned char *) UTXH1)=(unsigned char)(ch)l
51、160; void Uart_SendByten(int Uartnum, U8 data)/向uartnum發(fā)送數(shù)據(jù)datal
52、; /#define U8 unsigned charl if(Uartnum=0)l while(!(UTRSTAT0 & 0x4);
53、0; / UART0 Tx/Rx狀態(tài)寄存器,其第2位標(biāo)識(shí)傳輸buffer寄存器/是否為空(0為空),發(fā)送數(shù)據(jù)直到傳輸buffer寄存器為空l(shuí) hudelay(10); /等待10msl
54、160; WrUTXH0(data); /發(fā)送data到傳輸U(kuò)TXH0中l(wèi) l Else
55、160; /否則選用UART1l l while(!(rUTRSTAT1 & 0x4); l hudelay
56、(10);l WrUTXH1(data);l l (3)接收字符測(cè)試程序l c
57、har Uart_Getchn(char* Revdata, int Uartnum, int timeout)l / Revdata為接收的數(shù)據(jù),uartnum為串口標(biāo)識(shí),timeout為超時(shí)l if(Uartnum=0)l
58、; l while(!(UTRSTAT0 & 0x1);/UART0 Tx/Rx狀態(tài)寄存器的第0位標(biāo)識(shí)接收l(shuí)
59、; /buffer數(shù)據(jù)是否準(zhǔn)備好。1有接收數(shù)據(jù)l *Revdata=URXH0(); / URXH0:UART0的接收緩沖寄存器l
60、0; return 1;l l Else /如果從UART1接收數(shù)據(jù)l
61、0; l while(!(rUTRSTAT1 & 0x1);/Receive data readl *Revdata=RdURXH1();l &
62、#160; return TRUE;l l (4)測(cè)試主程序l int main(void)l l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘南學(xué)院《化工過程數(shù)據(jù)處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春科技學(xué)院《交通工程制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州水利水電職業(yè)技術(shù)學(xué)院《金融衍生工具(英語(yǔ))》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶人文科技學(xué)院《生物化學(xué)(3)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江東方職業(yè)技術(shù)學(xué)院《建筑力學(xué)1》2023-2024學(xué)年第二學(xué)期期末試卷
- 太原科技大學(xué)《建筑識(shí)圖與制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 藝術(shù)化家居設(shè)計(jì)
- 老年人如何科學(xué)飲食預(yù)防營(yíng)養(yǎng)不良
- 2025電子金融服務(wù)合同范本
- 2025租客能否提前終止租賃合同
- 2024年江蘇省南京市玄武區(qū)中考英語(yǔ)二模試卷
- 《體育精神》-體育故事與體育精神培養(yǎng)教案
- 投資合同:有限公司投資協(xié)議
- 四川大學(xué)華西口腔醫(yī)院臨床研究醫(yī)學(xué)倫理審查申請(qǐng)表【模板】
- 鍋爐安裝改造維修質(zhì)量保證體系文件(手冊(cè)+程序文件+表格+工藝文件匯編)-符合TSG 07-2019特種設(shè)備質(zhì)量保證管理體系
- 急性呼吸窘迫綜合征-課件
- 拖欠房租通知書范文
- 年產(chǎn)萬(wàn)噸的氯乙烯合成工段的工藝設(shè)計(jì)
- 2024年湖北省中考?xì)v史試卷附答案
- 燃?xì)饨?jīng)營(yíng)安全重大隱患判定標(biāo)準(zhǔn)課件
- 民法典之合同篇課件
評(píng)論
0/150
提交評(píng)論