串口通信(顧瑋潔) (2).ppt_第1頁
串口通信(顧瑋潔) (2).ppt_第2頁
串口通信(顧瑋潔) (2).ppt_第3頁
串口通信(顧瑋潔) (2).ppt_第4頁
串口通信(顧瑋潔) (2).ppt_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于DSP5402的異步串口通信模塊設(shè)計(jì),主要內(nèi)容,1、串口通信原理和異步串口芯片介紹 2、系統(tǒng)硬件方案設(shè)計(jì) 3、軟件設(shè)計(jì),1、串口通信原理,串口通信是按位(bit)將數(shù)據(jù)一位一位地依次傳輸,他可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。串行通信可以分為同步通信和異步通信。,(1)同步通信 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,要求發(fā)收雙方具有同頻同相的同步時(shí)鐘信號,只需在傳送報(bào)文的最前面附加特定的同步字符,使發(fā)收雙方建立同步,此后便在同步時(shí)鐘的控制下逐位發(fā)送/接收。,(2)異步通信 異步通信是一種很常用的通信方式。通常數(shù)據(jù)以字符或者字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端逐幀發(fā)送,

2、通過傳輸線被接收設(shè)備逐幀接收。發(fā)送端和接收端可以由各自的時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步。 異步串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配。,(1)TL16C550的特點(diǎn): 供電電壓為5 V33 V; 時(shí)鐘頻率高達(dá)16 MHz。通信時(shí)波特率最高可達(dá)1 M可編程設(shè)定波特率發(fā)生器; 具有標(biāo)準(zhǔn)的異步通信位,可選擇5、6、7、8位串行數(shù)據(jù)位,可設(shè)置奇偶校驗(yàn)或無校驗(yàn)?zāi)J?,停止位長度1、1.5、2; 獨(dú)立控制發(fā)送、接收、線狀態(tài)以及中斷設(shè)置; 軟件設(shè)定的FIFO,減少CPU中斷。,異步串行通信芯片TL16C550,(2).TL1

3、6C550的引腳功能:,圖 1,表 1,(4).內(nèi)部結(jié)構(gòu),圖 2,(4). TL16C550內(nèi)部寄存器 TL16C550C內(nèi)部共有11個(gè)寄存器,這些寄存器的訪問是通過3個(gè)地址線控制,LCR控制寄存器的D7位DLAB參與輔助定義。,表2,線路控制寄存器(LCR),線路狀態(tài)寄存器(LSR),中斷使能寄存器(IER),波特率除數(shù)寄存器,波特率除數(shù)寄存器為16位,由高8位(DLM)和低8位(DLL)組成,用來設(shè)置TL16C550C串行數(shù)據(jù)傳輸?shù)牟ㄌ芈省?除數(shù)寄存器的值可由TL16C550C的工作時(shí)鐘和波特率共同確定,計(jì)算公式為:除數(shù)=時(shí)鐘頻率/(期望的波特率16) 。例如在本例設(shè)計(jì)中TL16C550C

4、的輸入頻率是10MHz,若采用波特率為38400時(shí),通過計(jì)算公式可得高位除數(shù)寄存器(DLM)的值為00H,低位除數(shù)寄存器(DLL)的值為10H。同理,可以計(jì)算出表中各個(gè)波特率對應(yīng)的DLM、DLL值。,2、系統(tǒng)方案設(shè)計(jì),TL16C550C與TMS320VC54x都為TI公司生產(chǎn)的芯片,在電氣特性和時(shí)序匹配上兼容。要實(shí)現(xiàn)TMS320VC54x與TL16C550C之間的通信接口,我們采用可編程邏輯器件(CPLD)實(shí)現(xiàn),即需要用TMS320VC54x的信號通過一定的邏輯電路產(chǎn)生TL16C550C需要的控制信號。TMS320VC54x和TL16C550的接口電路示意圖如圖3所示。,圖3 基于TL16C5

5、50C的串口通信接口電路示意圖,在本實(shí)例中TMS320VC54x的數(shù)據(jù)線D0D7、地址線A0A分別與TL16C550C的數(shù)據(jù)線D0D7、地址線A0A2連接。,使用TMS320VC54x的I/O空間選擇信號/IS和地址線A10A15通過CPLD中的譯碼邏輯電路產(chǎn)生TL16C550C的片選信號/CS2,并將I/O地址空間的0 x00000 x03FF這段地址分配給TL16C550C,從而避免了與外部其他I/O設(shè)備發(fā)生沖突;使用TMS320VC54x的讀寫復(fù)用信號R/W和I/O選通信號/ISOTRB通過CPLD產(chǎn)生TL16C550C的讀寫控制信號/RD和/W;TL16C550C的中斷輸出INTRPT

6、通過CPLD譯碼邏輯電路產(chǎn)生TMS320VC54x的外部中斷控制信號/INT3,由于本實(shí)例中數(shù)據(jù)傳輸方式采用查詢的方式,所以數(shù)據(jù)傳輸?shù)闹袛喾绞街蛔鲱A(yù)留方案使用。,在實(shí)例中采用CPLD可以較好的實(shí)現(xiàn)接口邏輯較為復(fù)雜的電路設(shè)計(jì),從而提高了硬件設(shè)計(jì)的靈活性,本模塊中CPLD主要完成異步串口模塊的I/O地址分配、中斷分配和讀寫控制等功能。,1)異步串口模塊的I/O地址分配,使用TMS320VC54x的地址線A15A10和I/O空間選擇信號/IS通過CPLD內(nèi)部邏輯譯碼產(chǎn)生異步串口模塊的片選信號UART_CS(低電平有效),并將異步串口模塊映射到I/O地址空間的0 x00000 x03FF段內(nèi),,圖 4

7、,圖1為I/O地址分配波形仿真結(jié)果圖,如圖所示當(dāng)I/O空間選擇信號/IS和TMS320VC54x地址線A15.10均為低電平時(shí),異步串口模塊的片選信號UART_CS為低電平,即說明片選信號有效,,2)異步串口芯片中斷的分配 在異步串口通信中傳輸數(shù)據(jù)時(shí)我們采用的是查詢方式,而數(shù)據(jù)傳輸?shù)闹袛喾绞阶鳛轭A(yù)留方案,中斷方式是將TMS320VC5402的外部INT3分配給異步串口模塊,由撥碼開關(guān)SW15中的SIN3和異步串口芯片TL16C550C的中斷輸出引腳INTRPT(UART_INT)通過CPLD譯碼產(chǎn)生TMS320VC54x的外部中斷控制信號/INT3(BINT3),其邏輯電路設(shè)計(jì)的真值表如下表,

8、內(nèi)部接口邏輯如圖6所示。將,圖7為中斷分配的波形仿真結(jié)果圖,如圖所示在SIN3為高電平,UART_INT為低電平時(shí)BINT3為高電平,則說明中斷信號有效。,圖 6,圖 7,3)異步串口芯片的讀寫控制 我們使用TMS320VC54x的讀寫復(fù)用信號R/W和I/O選通信號/ISOTRB通過CPLD內(nèi)的邏輯電路產(chǎn)生TL16C550C的讀寫控制信號/RD和/WR,邏輯電路設(shè)計(jì)的真值表如下表,內(nèi)部接口邏輯如圖8所示,圖 8,圖為波形仿真結(jié)果圖,當(dāng)R/W=1,/IOSTRB=0時(shí),RD=0,WR=1,TL16C550C進(jìn)行讀操作;當(dāng)R/W=0,/IOSTRB=0, RD=1,WR=0,TL16C550C時(shí)進(jìn)

9、行寫操作;波形仿真結(jié)果如圖所示。,軟件算法流程圖如下所示,首先要完成對DSP和TL16C550C的初始化,在TL16C550C的初始化中要禁止FIFO的接收和發(fā)送;使能訪問接收緩沖寄存器(RBR)和發(fā)送保持寄存器(THR);設(shè)置數(shù)據(jù)位、停止位和奇偶校驗(yàn)位;設(shè)置數(shù)據(jù)傳輸波特率為38400,然后設(shè)置一個(gè)whlie(1)循環(huán)程序,在此循環(huán)程序中異步串口芯片TL16C550C完成從PC機(jī)中重復(fù)接收和發(fā)送數(shù)據(jù)的過程。,(1)TL16C550C初始化 初始化過程如下: UART_FCR=0 x00; /清除接收和發(fā)送FIFO; UART_LCR=UART_LCR /位7重新清零,關(guān)鍵代碼分析,(2)接收函

10、數(shù),unsigned int Uart_rx(void) volatile unsigned long ii = 0L; while (!(UART_LSR ,TL16C550C完成數(shù)據(jù)的接收過程為,首先查詢線路寄存器(LSR)的第0位,如果等于1則說明TL16C550C已經(jīng)將從PC機(jī)中接收的數(shù)據(jù)緩存在TL16C550C的接收緩沖寄存器(RBR)中,然后將此數(shù)據(jù)發(fā)送給 TMS320VC54x同時(shí)也將此數(shù)據(jù)賦值給定義好的數(shù)組data將其作為發(fā)送過程中的數(shù)據(jù)。,(3)發(fā)送函數(shù),unsigned int Uart_tx (unsigned int data) volatile unsigned long ii = 0L; while (!(UART_L

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論