《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于MSP430F149的串口服務(wù)器設(shè)計(jì)
基于MSP430F149的串口服務(wù)器設(shè)計(jì)
摘要: 基于MSP430F149的串口服務(wù)器設(shè)計(jì)[圖],摘要:MSP430微處理器具有功耗低和功能模塊豐富的特點(diǎn),。采用MSP430F149為主控制器和以太網(wǎng)
Abstract:
Key words :
 

摘要:MSP430微處理器具有功耗低和功能模塊豐富的特點(diǎn),。采用MSP430F149為主控制器和以太網(wǎng)控制芯片CS8900A設(shè)計(jì)串口服務(wù)器,,并且嵌入精簡后的TCP/IP協(xié)議,。以過程控制設(shè)備為目標(biāo)進(jìn)行調(diào)試,,實(shí)現(xiàn)RS-232串口和網(wǎng)絡(luò)接口RJ45的轉(zhuǎn)換,。使串口設(shè)備聯(lián)入以太網(wǎng),實(shí)現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)控制,。

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,,各種工業(yè)設(shè)備、試驗(yàn)設(shè)備以及家電等正在走向網(wǎng)絡(luò)化,,“讓全世界的設(shè)備連入網(wǎng)絡(luò)”已成為全球共識(shí),,所以把具有串口通信接口的設(shè)備連入網(wǎng)絡(luò),進(jìn)行遠(yuǎn)程數(shù)據(jù)交換和網(wǎng)絡(luò)控制,,顯得尤為重要,。

本文采用了TI公司生產(chǎn)的16位超低功耗的混合信號(hào)處理器(mixed signal processor)和Cirrus公司生產(chǎn)的高集成度的全面支持IEEE802.3標(biāo)準(zhǔn)的以太網(wǎng)控制器CS8900A來設(shè)計(jì)嵌入式串口服務(wù)器終端,以模塊化設(shè)計(jì)思想提供軟件設(shè)計(jì),,鑒于嵌入式系統(tǒng)有限的內(nèi)存,,對TCP/IP進(jìn)行了精簡,并進(jìn)行了調(diào)試,。

1 硬件電路設(shè)計(jì)

主控制器MSP430[1]是美國Texas Instruments(TI)公司于1996年開始推向市場的超低功耗微處理器,,擁有5種低功耗模式,以適應(yīng)不同的需要,。CPU從低功耗模式被喚醒,,這個(gè)過程最多只需要6μs,。靈活的時(shí)鐘使用方式也是MSP430的一大特點(diǎn),,除了片內(nèi)集成一個(gè)晶體振蕩器外,還可外接1~2個(gè)晶體振蕩器,。不同的內(nèi)部功能模塊可根據(jù)需要使用不同的晶體振蕩器,,在不需要時(shí)可以通過設(shè)置寄存器將其關(guān)閉,以減低功耗,。MSP430采用了16位的RISC架構(gòu),,具有125ns的指令周期,且內(nèi)部具有豐富的功能模塊,,集成了多通道10~14位的A/D轉(zhuǎn)換器,、雙路12位D/A轉(zhuǎn)換器、比較器,、電源電壓檢測,、串行口USART(UART/SPI)、硬件乘法器,、Flash存儲(chǔ)器,、看門狗定時(shí)器及多個(gè)16位、8位定時(shí)器等功能模塊,。這些結(jié)構(gòu)使得MSP430微處理器可以應(yīng)用到更多的場合,,有更廣泛的應(yīng)用,,也使得串口服務(wù)器的設(shè)計(jì)更為簡單化。

以太網(wǎng)控制芯片CS8900A[2]是Cirrus Logic公司生產(chǎn)的低功耗,、性能優(yōu)越的16位以太網(wǎng)控制器,。其突出特點(diǎn)是使用靈活,物理層接口,、數(shù)據(jù)傳輸模式和工作模式等都能根據(jù)需要而動(dòng)態(tài)調(diào)整,,通過內(nèi)部寄存器的設(shè)置來適應(yīng)不同的應(yīng)用環(huán)境。

系統(tǒng)的硬件框圖如圖1所示,。

基于MSP430F149的串口服務(wù)器設(shè)計(jì)
圖1 系統(tǒng)的硬件框圖

電源通過5V電源適配器,,經(jīng)LD1117芯片轉(zhuǎn)化為3.3V穩(wěn)壓電源給主控制器MSP430、以太網(wǎng)芯片CS8900A及SP3223供電,。MSP430接8MHz的晶振,,同時(shí)外接一個(gè)JTAG口,通過JTAG口接MSP430仿真器用于系統(tǒng)與MSP430開發(fā)軟件IAR之間的程序調(diào)試 ,。

主控制器負(fù)責(zé)控制以太網(wǎng)接口完成網(wǎng)絡(luò)數(shù)據(jù)包的發(fā)送和接收,,以及相應(yīng)的封裝和解包工作,根據(jù)上位機(jī)的指令完成相應(yīng)的數(shù)據(jù)采集和處理,,并且檢測串口通信模塊是否有事件發(fā)生然后做出相應(yīng)的反應(yīng),;負(fù)責(zé)完成系統(tǒng)上電復(fù)位、初始化以及低電壓檢測等功能,。CS8900A內(nèi)部的802.3介質(zhì)訪問控制[4]負(fù)責(zé)處理有關(guān)以太網(wǎng)數(shù)據(jù)幀的發(fā)送和接收,,包括:數(shù)據(jù)檢測、幀頭的產(chǎn)生和檢測,、CRC校驗(yàn)碼的生成和驗(yàn)證,。以太網(wǎng)模塊用于完成TCP/IP協(xié)議棧中的鏈路層功能,在發(fā)送時(shí)把網(wǎng)絡(luò)層數(shù)據(jù)包轉(zhuǎn)換成以太網(wǎng)物理幀格式用于物理信道上的傳輸,;在接收時(shí)將物理信道上接收到的信號(hào)轉(zhuǎn)換成網(wǎng)絡(luò)層數(shù)據(jù)包,。

2 軟件程序設(shè)計(jì)

軟件部分采用模塊化的設(shè)計(jì)思想,把程序化繁為簡,,便于程序的設(shè)計(jì),、調(diào)試及維護(hù)。整個(gè)部分包括初始化模塊,、串口數(shù)據(jù)采集及處理模塊,、網(wǎng)絡(luò)數(shù)據(jù)采集及處理模塊和TCP/IP模塊,另外還有定時(shí)器中斷用于TCP的重發(fā)機(jī)制計(jì)時(shí)和數(shù)據(jù)采集計(jì)時(shí),、串口中斷用于轉(zhuǎn)發(fā)串口數(shù)據(jù),。

程序工作流程如圖2所示。

基于MSP430F149的串口服務(wù)器設(shè)計(jì)
圖2 程序工作流程

2.1 初始化模塊

初始化模塊包括對主控制器MSP430F149和以太網(wǎng)控制器CS8900A的初始化,;包括時(shí)鐘振蕩器的設(shè)置,、I/O口初始化設(shè)置,、定時(shí)器A的初始化和CS8900A片內(nèi)寄存器的初始化。

初始化XT1上的8MHz晶振,,并用作系統(tǒng)主時(shí)鐘MCLK,。

static void InitOsc(void)
     {
     WDTCTL = WDTPW + WDTHOLD;          // 關(guān)閉看門狗
     BCSCTL1 |= XTS;                    // XT1工作在高頻模式
     __bic_SR_register(OSCOFF);         // 啟動(dòng)XT1晶振
     do
     {
     IFG1 &= ~OFIFG;        // 清除振蕩器失效標(biāo)志 OFIFG
     DelayCycles(100),;                       // 延時(shí)130?滋s
     }
     while (IFG1 & OFIFG),;               // 判斷XT1是否起振
     BCSCTL2 = SELM_3;                   // 選擇MCLK為XT1
     }

I/O口的初始化:P3.7和P3.6初始化用于控制CS8900A的IOW和IOR,P3.5和P3.4用于串口UART0,,P3.3~P3.0用于CS8900的地址總線,,P5用于CS8900A的數(shù)據(jù)總線,這些都在CS8900A的初始化程序中進(jìn)行,。

以太網(wǎng)模塊CS8900A的初始化程序如下:

void Init8900(void)
     {
     unsigned int i;
     P3OUT = IOR | IOW;
     P3DIR = 0xff;
     P5OUT = 0;
     P5DIR = 0xff;
     DelayCycles(40000),;
     DelayCycles(40000);
     Write8900(ADD_PORT, PP_SelfCTL),;
     Write8900(DATA_PORT,POWER_ON_RESET),;
     do
     Write8900(ADD_PORT, PP_SelfST);
     while  (?。≧ead8900(DATA_PORT) & INIT_DONE)),;
     }

2.2 數(shù)據(jù)采集及處理

這里包括網(wǎng)絡(luò)數(shù)據(jù)和串口數(shù)據(jù)的采集和處理。程序設(shè)計(jì)中設(shè)置了全局變量DonetworkStuff函數(shù)來檢查是否收到一個(gè)幀,。當(dāng)確定數(shù)據(jù)包是發(fā)給特定模塊時(shí),,開始調(diào)用函數(shù)ProcessFrame()來對數(shù)據(jù)進(jìn)行處理。

2.3 TCP/IP模塊

層次結(jié)構(gòu)是描述協(xié)議棧普遍采用的方法,,每一層都向上一層提供服務(wù),,同時(shí)使用來自下層提供的服務(wù),,低層的操作細(xì)節(jié)對上層來說是不透明的,。根據(jù)嵌入式自身的特點(diǎn)和系統(tǒng)需求,對TCP/IP進(jìn)行了精簡,,以更適合嵌入式系統(tǒng)的需要,。TCP/IP的4層結(jié)構(gòu)與OSI的7層參考模型對應(yīng)關(guān)系如圖3所示。

基于MSP430F149的串口服務(wù)器設(shè)計(jì)
圖3 TCP/IP的4層結(jié)構(gòu)

TCP/IP協(xié)議中應(yīng)用層,、傳輸層,、互聯(lián)網(wǎng)層和網(wǎng)絡(luò)接口層的基本功能如表1所述。

表1 TCP/IP協(xié)議各層功能
基于MSP430F149的串口服務(wù)器設(shè)計(jì)

當(dāng)有串口數(shù)據(jù)需要發(fā)送或者收到網(wǎng)絡(luò)數(shù)據(jù)后,,系統(tǒng)進(jìn)入TCP/IP協(xié)議模塊對數(shù)據(jù)進(jìn)行處理,,TCP/IP協(xié)議模塊的初始化程序如下:

void TCP Init(void)
     {
     BCSCTL1 &= ~DIVA0;
     //ACLK=XT1/4=2MHz
     BCSCTL1 |=DIVA1;
     TACTL=ID_3+TASSEL_1+MC_2+TAIE;
     //選擇ACLK為時(shí)鐘源,1/8分頻,,連續(xù)計(jì)數(shù)模式
     Init8900(),;
     TransmitControl = 0;
     TCPFlags = 0;
     TCPStateMachine = CLOSED;
     SocketStatus = 0;
     }

目前市場成型的串口服務(wù)器產(chǎn)品大多采用高性能32位微處理器在RTOS(實(shí)時(shí)多任務(wù)操作系統(tǒng))上開發(fā),,成本高,開發(fā)周期長,。采用16位的MSP430的串口服務(wù)器,,成本較低,而且功耗較低,,配置以太網(wǎng)控制器CS8900A,,有很廣泛的應(yīng)用場合。采用16位微處理器,、網(wǎng)絡(luò)接口芯片和精簡TCP/IP協(xié)議的設(shè)計(jì),,實(shí)現(xiàn)RS-232串口和網(wǎng)絡(luò)接口RJ45的轉(zhuǎn)換,既經(jīng)濟(jì),,又簡單,。

在系統(tǒng)的實(shí)時(shí)性方面,MSP430F149單片機(jī)指令速度可達(dá)8MIPS,,采用可以提高數(shù)據(jù)傳輸速度的DMA(Direct Memory Access),,完全可以滿足串口通信對實(shí)時(shí)性的要求。另外MSP430F149具有2KB的ROM,,通過建立數(shù)據(jù)緩沖區(qū),,能有效解決串口和網(wǎng)口傳輸速率不匹配的矛盾,提高系統(tǒng)的實(shí)時(shí)性,。

參考文獻(xiàn)

[1] 張晞,,王德銀,張晨. MSP430系列單片機(jī)實(shí)用C語言程序設(shè)計(jì). 北京:人民郵電出版社,,2005:2-4.
     [2] 張鵬,,張愛民,李杰. 基于以太網(wǎng)控制器CS8900A實(shí)現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)互聯(lián). 電子工程師,,2002(2):4-5.
     [3] 張曉飛. 基于MSP430單片機(jī)的嵌入式網(wǎng)絡(luò)終端.合肥工業(yè)大學(xué)碩士論文, 2006:7-8.
     [4] 姚軍,,溫陽東,謝毓廣. 基于MSP430F1611 MCU的微機(jī)保護(hù)控制單元. 電氣時(shí)代,,2005.
     [5] MSP430 internet connectivity. http://microcontroller.ti.com

作者:陳政石 秦紅波 李鐵鷹   來源:《電子技術(shù)應(yīng)用》2009年1期

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。