DSP芯片基于SC16C750B的RS232接口設(shè)計
出處:awey 發(fā)布于:2007-04-29 09:13:31
DSP芯片基于SC16C750B的RS232接口設(shè)計
清華大學(xué) 薛志方 史琳
引言
美國TI(Texas Instruments)公司的系列DSP芯片采用哈佛結(jié)構(gòu)、流水線操作、專用硬件乘法器、快速DSP指令,使其在數(shù)字信號處理,通信和工業(yè)自動化等領(lǐng)域得到廣泛應(yīng)用[1]。TMS320C32是32位浮點處理器。它除了上述特點外,還具有增強型存儲器接口、靈活的啟動裝載(boot loader)、可重定位的中斷矢量表、靈活的中斷方式和其他外設(shè)[2];其通信功能只包括片上集成的一個串口,但在設(shè)計中此串口一般被串行A/D或D/A芯片占用,或者被用于與另一片DSP芯片在“握手模式”(handshake mode)下直接連接。[3]
雖然TMS320C32串口有多種工作方式[3,4]。但通過串口相應(yīng)的寄存器并不能直接配置出符合RS232標(biāo)準(zhǔn)的通信串口,而RS通信串口是自動化控制設(shè)備的一種基本通信方式,如PC機或其他各種基于微處理器的控制裝置。RS232標(biāo)準(zhǔn)在1991年被標(biāo)準(zhǔn)化組織EIA(Electronic Industries Association)重命名為EIA232標(biāo)準(zhǔn)[5],是一種異步串行通信標(biāo)準(zhǔn),包括機械連接、信號功能、電壓特性和通信協(xié)議等幾個方面的規(guī)定。
采用1片SC16C750B UART芯片[6]來完成TMS320C32的RS232串口的設(shè)計。此UART的串行數(shù)據(jù)速率可達3Mbps,引腳與TL16C750兼容,并且具有64字節(jié)接收和發(fā)送FIFOs以及自動硬件流量功能。這些特征使串口通信更加高效、可靠。
1 TMS320C32的RS232串口硬件設(shè)計
在基于微處理器開發(fā)的自動控制裝置設(shè)計中,一般并不需要串行通信的長距離傳輸,故普遍采用“零-Modem”方式(Null-Modem or Zero-Modem)實現(xiàn)一對異步串口連接。圖1為一種“零-Modem”連接方式(具體信號的意義可見RS232標(biāo)準(zhǔn))。
由于RS232標(biāo)準(zhǔn)的異步通信規(guī)約數(shù)據(jù)幀都帶起始位和停止位,并且SC16C750B UART芯片具有自動硬件流量控制功能,因此可以進一步忽略與Modem相關(guān)的控制信號(DTR、DSR、CD、RTS、CTS),簡化連接。
1.1 SC16C7550B UART芯片
SC16C750B為異步串行通信芯片[6],帶標(biāo)準(zhǔn)Modem接口,它具有以下主要特點:
(1)標(biāo)準(zhǔn)異步錯誤位和幀格式位(起始位、停止位、奇偶校驗位),并且?guī)袷娇删幊蹋?
(2)軟件可選擇波特率;
(3)發(fā)送和接收各64字節(jié)FIFOs;
(4)發(fā)送、接收、線路狀態(tài)等中斷可獨立控制,并且中斷優(yōu)先級可額編程;
(5)獨立的接收時鐘。
(6)在5V工作電壓下,發(fā)送或接收速率可達5Mbps;
(7)自動硬件流量控制
(8)4種可選擇接收中斷級別;
(9)標(biāo)準(zhǔn)Modem接口;
(10)引腳與ST16C450/550、TL16C450/550、PC16C450/550,軟件與SC16C750及TL16C750兼容。其他一些特點不再贅述。
SC16C750B主要引腳的功能如表1所列,更具體的資料可見文獻 [6] 。
1.2 硬件原理
硬件設(shè)計的總體思路:
(1)UART的地址被分配到TMS320C32的IOSTRB外部存儲器空間,片選信號對應(yīng)的地址即為UART的基地址。
(2)RXRDY、TXRDY分別作為接收、發(fā)送中斷信號,分別接C32的中斷外部引腳INT0、INT1、并且C32的中斷觸發(fā)方式設(shè)為低電平觸發(fā)。
(3)UART的TX、RX引腳均為CMOS電平,而RS232采用的是“負邏輯電平”。本設(shè)計采用1片MAX3232[7]完成它們之間的電平轉(zhuǎn)換和驅(qū)動,其數(shù)據(jù)傳輸速率達1Mbps。
(4)使接收部分和發(fā)送部分的波特率相同,此時RCLK接BAUDOUT引腳。
(5)外部參考時鐘頻率為1.8432MHz。
1.3 UART擴展RS232串口原理
依據(jù)上面的整體思路設(shè)計出硬件電路,如圖2所示。
圖2中的端口信號,如數(shù)據(jù)和地址總線、復(fù)位信號、中斷信號,完成與TMS320C32之間的連接。本設(shè)計中片選信號對應(yīng)TMS320C32的IOSTRB空間中的0x810100h,即SC16C750B的內(nèi)部寄存器的基地址。
2 TMS320C32的RS232串口軟件功能設(shè)計
串口工作模式控制和數(shù)據(jù)收發(fā)都是通過TMS320C32對UART內(nèi)部相關(guān)寄存器的讀寫操作來完成的。因此,首先分析一下SC16C750B片內(nèi)寄存器的功能,然后確定在本設(shè)計中SC16C750B的工作模式,并且給出該串口的初始化程序、中斷發(fā)送程序和中斷接收程序。程序以C語言寫成。
2.1 SC16C750B片內(nèi)寄存器
表2給出SC16C750B內(nèi)部寄存器的功能描述。寄存器各位意義可參見該芯片的數(shù)據(jù)手冊。
2.2 程序設(shè)計
首先初始化編程,以確定TMS320C32與SC16C750B之間的操作方式、數(shù)據(jù)傳輸幀格式、SC16C750B自身的工作模式、數(shù)據(jù)傳輸波特率的設(shè)置等工作。設(shè)定:
(1)SC16C750B工作DMA模式0(DMA mode 0)。在此模式下,每當(dāng)發(fā)送寄存器THR為空,TXRDY信號會降為邏輯低電平。只要接收寄存器RHR被裝載了一個字符,RXRDY會立刻降為邏輯低電平。
(2)TMS320C32與SC16C750B UART之間的操作方式采用中斷操作方式,中斷方式相對于查詢方式可以提高TMS3320C32的工作效率。TMS320C32的INT0中斷引腳接UART的RXRDY信號,INT1接TXRDY信號。這樣,由INT0、INT1對應(yīng)的中斷服務(wù)例程完成數(shù)據(jù)的接收和發(fā)送。
(3)數(shù)據(jù)傳輸幀格式:數(shù)據(jù)字長8位、2位停止位、偶校驗。
(4)設(shè)置波特率。
在RS232電平邏輯中,串行數(shù)據(jù)速率(serial data rate)就在等于波特率(baud rate)。如果外部時鐘頻率(XTAL1 clock frequency)為1.8432MHz、波特率19 200bps時,對應(yīng)的波特率除數(shù)(pisor)為6。
用C語言開發(fā)[8]TMS320C32的串口通信程序。初始化程序如下:
#include<stdlib.h>
#include<ioports.h>
//聲明SC16C750B寄存器的結(jié)構(gòu)
typedef struct{
unsigned RHR;//接收保持寄存器
unsigned THR;//發(fā)送保持寄存器
unsigned IER;//中斷使能寄存器
unsigned FCR;//FIFO控制寄存器
unsigned ISR;//中斷服務(wù)狀態(tài)寄存器
unsigned LCR;//線路控制寄存器
unsigned MCR;//Modem控制寄存器
unsigned LSR;//線路狀態(tài)寄存器
unsigned MSR;//Modem狀態(tài)寄存器
unsigned SPR;//便箋寄存器
unsigned DLL;//波特率除數(shù)低字節(jié)鎖存器
unsigned DLM;//波特率除數(shù)高字節(jié)鎖存器
}SerialPort;
//SC16C750B的寄存器基地址為0x810100h
serialPort sp={
0x810100h,0x810100h,0x810101h,
0x810102h,0x810102h,0x810103h,
0x810104h,0x810105h,0x810106h,
0x810107h,0x810100h,0x810101h,
};
void main(void){ …
//波特率設(shè)置
outport(sp.LCR,0x80); //LCR[7]=0
outport(sp.DLL,0x06); //波特率19 200bps
outport(sp.DLM,0x00);
outport(sp.LCR,0x1F); //數(shù)據(jù)幀格式
outport(sp.FCR,0xA1); //DMA mode 0 outport(sp.IER,0x07); //中斷使能
…
}
//INT0中斷服務(wù)例程——數(shù)據(jù)接收
unsigned char recvdata;
void c_int01(void){
recvdata=inport(sp,RHR);
…
}
//INT1中斷服務(wù)例程——數(shù)據(jù)發(fā)送
void c_int02(void){
outport(sp.THR,transdata);
…
}
3 結(jié)論
TMS320C32是一種高性價比的32位浮點DSP芯片,但其通信功能相對較弱。采用SC16C750B UART芯片擴展TMS320C32的RS232串行口,用于實際溫度和壓力測控裝置中,經(jīng)驗證,數(shù)據(jù)通信可靠。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









