王林
(安徽電子信息職業(yè)技術(shù)學(xué)院軟件學(xué)院,安徽蚌埠233000)
MSP430的多串口擴(kuò)展適配器的設(shè)計(jì)
王林
(安徽電子信息職業(yè)技術(shù)學(xué)院軟件學(xué)院,安徽蚌埠233000)
設(shè)計(jì)了一種嵌入式系統(tǒng)中多串口擴(kuò)展適配器的系統(tǒng),其主控芯片采用MSP430F147單片機(jī),串口擴(kuò)展采用TL16C752B芯片.該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、易于實(shí)現(xiàn),滿(mǎn)足對(duì)串口數(shù)量、成本和功耗有嚴(yán)格要求的應(yīng)用場(chǎng)合.
MSP430F147;TL16C752B;多串口擴(kuò)展
串行接口以其簡(jiǎn)單方便、可靠的特點(diǎn)成為最流行的通訊接口之一.在工業(yè)控制、醫(yī)用設(shè)備、POS機(jī)等很多領(lǐng)域里,經(jīng)常需要使用多個(gè)串口進(jìn)行上、下位機(jī)的數(shù)據(jù)通訊.
在某項(xiàng)目的多通道數(shù)據(jù)采集系統(tǒng)中,使用四個(gè)串口分別作為四路數(shù)據(jù)采集的傳輸通道,傳輸速度要求100 kbps以上.TI公司生產(chǎn)的低功耗單片機(jī)MSP430F147作為主控芯片能夠滿(mǎn)足該系統(tǒng)的超低功耗的要求,而該單片機(jī)只有兩個(gè)自帶的全雙工通信串口,需要以MSP430為核心擴(kuò)展2~3個(gè)波特率可達(dá)115 200 bps的高速串口,從而滿(mǎn)足應(yīng)用需求.
1.1 方案選擇
針對(duì)嵌入式系統(tǒng)中主控芯片自帶串口數(shù)量不足的情況,串口擴(kuò)展方案主要有以下幾種:
1)采用USB轉(zhuǎn)串口芯片擴(kuò)展,MSP430單片機(jī)沒(méi)有集成USB接口,這種方案實(shí)現(xiàn)成本和復(fù)雜度高.
2)采用GM8125芯片進(jìn)行擴(kuò)展,GM8125是將母串口擴(kuò)展成五個(gè)子串口的專(zhuān)用芯片,該方案能達(dá)到的最高波特率為38 400 bps[1],達(dá)不到本系統(tǒng)115 200 bps波特率的要求.
3)使用TL16C752B芯片進(jìn)行擴(kuò)展,該方案能夠同時(shí)滿(mǎn)足串口數(shù)量和波特率的要求.
1.2 MSP430F147單片機(jī)
MSP430F147是TI公司的一款16位RISC架構(gòu)的高性能單片機(jī),主要具有以下資源:兩個(gè)帶捕獲/比較寄存器和PWM輸出功能的16位定時(shí)器,32 kB+256字節(jié)的FLASH空間,1 KB的RAM,兩個(gè)串行通信接口USART0/1,12位的A/D,48個(gè)I/O接口. MSP430系列單片機(jī)以低功耗著稱(chēng),工作電壓范圍為1.8 V~3.6V,在2.2 V電壓、1MHz的工作條件下,正常工作電流為280μA,待機(jī)模式下僅為1.6μA,廣泛應(yīng)用在采用電池供電的各類(lèi)低功耗儀器儀表和便攜式設(shè)備中[2].
1.3 TL16C752B芯片
TL16C752B是一款兩路獨(dú)立的UART芯片,也由TI公司生產(chǎn).外接48MHz晶振時(shí)可達(dá)到3Mbps的波特率,從而能夠滿(mǎn)足高速數(shù)據(jù)傳輸?shù)囊? TL16C752B的內(nèi)部結(jié)構(gòu)圖如圖1所示[3].
發(fā)送和接收端均有64字節(jié)的FIFO作為數(shù)據(jù)緩沖區(qū),并且可以通過(guò)軟件編程設(shè)置發(fā)送、接收FIFO觸發(fā)中斷的等級(jí),以此來(lái)合理減少CPU中斷的次數(shù),提高系統(tǒng)效率.TL16C752B內(nèi)部的主要寄存器如表1所示[4].

圖1 TL16C752B內(nèi)部結(jié)構(gòu)
多串口擴(kuò)展適配器的硬件設(shè)計(jì)包括MSP430最小系統(tǒng)、MSP430與TL16C752B的通信電路以及RS-232電平與TTL電平轉(zhuǎn)換電路這幾個(gè)部分.

表1 TL16C752B的寄存器
2.1 MSP430最小系統(tǒng)
最小系統(tǒng)保證了MSP430F147芯片能正常可靠工作,主要包括電源、復(fù)位電路和時(shí)鐘電路(圖2)[5].

圖2 復(fù)位和時(shí)鐘電路
最小系統(tǒng)電源由可充電鋰電池提供3.3 V工作電壓.復(fù)位電路采用手動(dòng)復(fù)位方式,由專(zhuān)用復(fù)位芯片MAX811實(shí)現(xiàn).外部時(shí)鐘電路由兩部分組成,其中32.768 kHz的晶振提供低速時(shí)鐘信號(hào)來(lái)滿(mǎn)足低功耗要求,4MHz的高速晶振為單片機(jī)在高頻模式下提供時(shí)鐘,兩個(gè)晶振都需要外接22 pF的諧振電容.
2.2 MSP430與TL16C752B的連接
MSP430與TL16C752B之間的接口電路示意圖如圖3所示,MSP430的P2端口作為數(shù)據(jù)總線(xiàn)通過(guò)總線(xiàn)驅(qū)動(dòng)芯片SN74LVC16245A與TL16C752B的D0~D7連接.MSP430的P3.5和P3.6端口連接到TL16C752B的nIOR和nIOW作為讀寫(xiě)使能信號(hào),P1.0和P1.1用來(lái)配置成外部中斷接口與TL16C752B的INTA和INTB連接.TL16C752B的片選信號(hào)CSA和CSB由MSP430的P3.3和P3.4提供,TL16C752B的三根地址線(xiàn)A0~A2用來(lái)確定芯片內(nèi)部寄存器的地址,分別連接到MSP430的P3.0~P3.2.對(duì)TL16C752B的內(nèi)部寄存器進(jìn)行讀寫(xiě)時(shí),必須首先保證片選信號(hào)和地址信號(hào)同時(shí)有效,并采用軟件方式模擬芯片的讀寫(xiě)時(shí)序完成操作.
RESET為T(mén)L16C752B的復(fù)位信號(hào),高電平有效,而MSP430的復(fù)位信號(hào)為低電平有效,因此在這兩個(gè)復(fù)位信號(hào)之間使用一個(gè)三極管進(jìn)行反相,以此來(lái)同步復(fù)位整個(gè)系統(tǒng).

圖3 接口電路示意圖
2.3 電平轉(zhuǎn)換電路
標(biāo)準(zhǔn)串口使用的是RS-232電平,本系統(tǒng)中使用MAX3243E芯片來(lái)實(shí)現(xiàn)TTL電平與RS-232電平之間的轉(zhuǎn)換[6].
要使TL16C752B能夠正常工作,需要編寫(xiě)單片機(jī)程序?qū)ζ溥M(jìn)行初始化,軟件開(kāi)發(fā)環(huán)境為IAR EmbeddedWorkbench,開(kāi)發(fā)語(yǔ)言為C語(yǔ)言[7].
3.1 軟件流程
軟件驅(qū)動(dòng)流程主要包括對(duì)MSP430和TL16C752B芯片的初始化以及數(shù)據(jù)的收發(fā)(如圖4).

圖4 軟件處理流程
對(duì)TL16C752B的初始化主要包括以下內(nèi)容[8]:
1)設(shè)定傳輸波特率;
2)FIFO數(shù)據(jù)緩沖寄存器的配置;
3)傳輸格式設(shè)定,包括數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)位等;
4)中斷寄存器的配置;
5)軟件流控模式配置等.
3.2 部分關(guān)鍵代碼


驗(yàn)證多串口擴(kuò)展適配器是否正常工作,可分為發(fā)送和接收數(shù)據(jù)兩部分進(jìn)行測(cè)試.在發(fā)送數(shù)據(jù)時(shí),可以循環(huán)發(fā)送同一字符,如0xAA或0x55,在TXD引腳處連接示波器查看是否有方波信號(hào).在接收數(shù)據(jù)時(shí),需循環(huán)檢查L(zhǎng)SR寄存器的最低位,判斷是否接收到字符,再通過(guò)外接的顯示設(shè)備如數(shù)碼管或主機(jī)的超級(jí)終端來(lái)判斷接受到的字符是否正確.
經(jīng)測(cè)試,所設(shè)計(jì)的多串口擴(kuò)展適配器的數(shù)據(jù)收發(fā)功能完全正常,且傳輸速率基本滿(mǎn)足要求.后續(xù)可考慮進(jìn)一步優(yōu)化軟件驅(qū)動(dòng)代碼,并對(duì)該設(shè)計(jì)模塊化以提高復(fù)用能力.
[1]張成瑞,李見(jiàn)為,王剛.基于單片機(jī)和GM8125的多路串口收發(fā)器設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2011,7(10):2422-2423.
[2]Texas Instruments.MSP430x13x,MSP430x14x,MSP430x14x1 Mixed signal microcontroller[EB/OL].(2004-06)[2014-06-10]. http://www.ti.com.cn/cn/lit/ds/sym link/msp430f1491.pdf.
[3]Texas Instruments.TL16C752B 3.3-V Dual UART with 64-Byte FIFO[EB/OL].(2007-12)[2014-06-09].http://www.ti.com.cn/cn/lit/ ds/sym link/tl16c752b-ep.pdf.
[4]靳紅濤,趙娜,陳朝基,等.基于TL16C752B的DSP通用異步串行接口設(shè)計(jì)[J].2009,32(7):93-95.
[5]韓勇鵬,霍利鋒.基于MSP430F169的最小系統(tǒng)設(shè)計(jì)[J].山西農(nóng)業(yè)大學(xué)學(xué)報(bào),2007(6):216-218.
[6]王欣,羅志祥,沈光.基于ARM和uClinux多串口通訊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2007,35(8):144-148.
[7]洪利,章?lián)P,李世寶.MSP430單片機(jī)原理與應(yīng)用實(shí)例詳解[M].北京:北京航空航天大學(xué)出版社,2010:118-133.
[8]陳偉,陳遠(yuǎn)知.用TL16C752B實(shí)現(xiàn)DSP和PC機(jī)的串行通信[J].國(guó)外電子元器件,2004(4):50-53.
【編校:許潔】
Design ofMultiSerial Port Expansion Adapter Based on MSP430
WANG Lin
(AnhuiVocationalCollege ofElectronicand Information Technology,Bengbu,Anhui233000,China)
The design scheme for multi serial port adapter of an embedded system was proposed which employed MSP430F147 as themain control chip and used TL16C752B to expand the serial port.The hardware circuitand software processingwere also introduced.The scheme has the advantagesof simple structure and easy realization.Itapplies to applicationswhich have strict requirementson thenumberofserialport,costand power consumption.
MSP430F147;TL16C752B;multiserialportexpansion
TP368.1
A
1671-5365(2014)12-0056-03
2014-06-17修回:2014-07-08
王林(1983-),男,講師,碩士,研究方向?yàn)榍度胧较到y(tǒng)
時(shí)間:2014-07-11 09:33
http://www.cnki.net/kcms/detail/51.1630.Z.20140711.0933.003.htm l