《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于MSP430F149的串口服務器設計

基于MSP430F149的串口服務器設計

2009-05-18
作者:陳政石1, 秦紅波1,2, 李鐵

??? 摘? 要: MSP430微處理器具有功耗低和功能模塊豐富的特點。采用MSP430F149為主控制器和以太網控制芯片CS8900A設計串口服務器,并且嵌入精簡后的TCP/IP協議。以過程控制設備為目標進行調試,實現RS-232串口和網絡接口RJ45的轉換。使串口設備聯入以太網,實現遠程網絡控制。 ?

??? 關鍵詞: MSP430; 串口服務器; 以太網

?

??? 隨著計算機網絡技術的發展,各種工業設備、試驗設備以及家電等正在走向網絡化,“讓全世界的設備連入網絡”已成為全球共識,所以把具有串口通信接口的設備連入網絡,進行遠程數據交換和網絡控制,顯得尤為重要。?

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

1 硬件電路設計?

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

??? 以太網控制芯片CS8900A[2]是Cirrus Logic公司生產的低功耗、性能優越的16位以太網控制器。其突出特點是使用靈活,物理層接口、數據傳輸模式和工作模式等都能根據需要而動態調整,通過內部寄存器的設置來適應不同的應用環境。?

??? 系統的硬件框圖如圖1所示。?

?

?

??? 電源通過5 V電源適配器,經LD1117芯片轉化為3.3 V穩壓電源給主控制器MSP430、以太網芯片CS8900A及SP3223供電。MSP430接8 MHz的晶振,同時外接一個JTAG口,通過JTAG口接MSP430仿真器用于系統與MSP430開發軟件IAR之間的程序調試[3] 。?

??? 主控制器負責控制以太網接口完成網絡數據包的發送和接收,以及相應的封裝和解包工作,根據上位機的指令完成相應的數據采集和處理,并且檢測串口通信模塊是否有事件發生然后做出相應的反應;負責完成系統上電復位、初始化以及低電壓檢測等功能。CS8900A內部的802.3介質訪問控制[4]負責處理有關以太網數據幀的發送和接收,包括:數據檢測、幀頭的產生和檢測、CRC校驗碼的生成和驗證。以太網模塊用于完成TCP/IP協議棧中的鏈路層功能,在發送時把網絡層數據包轉換成以太網物理幀格式用于物理信道上的傳輸;在接收時將物理信道上接收到的信號轉換成網絡層數據包。?

2 軟件程序設計?

??? 軟件部分采用模塊化的設計思想,把程序化繁為簡,便于程序的設計、調試及維護。整個部分包括初始化模塊、串口數據采集及處理模塊、網絡數據采集及處理模塊和TCP/IP模塊,另外還有定時器中斷用于TCP的重發機制計時和數據采集計時、串口中斷用于轉發串口數據。?

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

?

?

2.1初始化模塊?

??? 初始化模塊包括對主控制器MSP430F149和以太網控制器CS8900A的初始化;包括時鐘振蕩器的設置、I/O口初始化設置、定時器A的初始化和CS8900A片內寄存器的初始化[5]。?

??? 初始化XT1上的8MHz晶振,并用作系統主時鐘MCLK。?

??? static void InitOsc(void)?

??? {?

??? WDTCTL = WDTPW + WDTHOLD;????? ????// 關閉看門狗?

??? BCSCTL1 |= XTS;??????????????????? // XT1工作在高頻模式?

??? __bic_SR_register(OSCOFF);???????? // 啟動XT1晶振?

??? ? ? do?

??? {?

??? IFG1 &= ~OFIFG;??????? // 清除振蕩器失效標志 OFIFG?

??? DelayCycles(100);??? ?????????????????? // 延時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的數據總線,這些都在CS8900A的初始化程序中進行。?

??? 以太網模塊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? (!(Read8900(DATA_PORT) & INIT_DONE));????

??? }?

2.2數據采集及處理?

??? 這里包括網絡數據和串口數據的采集和處理。程序設計中設置了全局變量DonetworkStuff函數來檢查是否收到一個幀。當確定數據包是發給特定模塊時,開始調用函數ProcessFrame()來對數據進行處理。?

2.3 TCP/IP模塊?

??? 層次結構是描述協議棧普遍采用的方法,每一層都向上一層提供服務,同時使用來自下層提供的服務,低層的操作細節對上層來說是不透明的。根據嵌入式自身的特點和系統需求,對TCP/IP進行了精簡,以更適合嵌入式系統的需要。TCP/IP的4層結構與OSI的7層參考模型對應關系如圖3所示。?

??? TCP/IP協議中應用層、傳輸層、互聯網層和網絡接口層的基本功能如表1所述。?

?

?

??? 當有串口數據需要發送或者收到網絡數據后,系統進入TCP/IP協議模塊對數據進行處理,TCP/IP協議模塊的初始化程序如下:?

??? void TCP Init(void)?

??? {?

??????? BCSCTL1 &= ~DIVA0; ?

??????????????????????????????? ?//ACLK=XT1/4=2MHz?

??????? BCSCTL1 |=DIVA1;?

??? TACTL=ID_3+TASSEL_1+MC_2+TAIE;?

??????????????? //選擇ACLK為時鐘源,1/8分頻,連續計數模式?

??????? Init8900();?

  ??? TransmitControl = 0;?

  ??? TCPFlags = 0;?

???  ? TCPStateMachine = CLOSED;?

??????? SocketStatus = 0;?

??? }?

??? 目前市場成型的串口服務器產品大多采用高性能32位微處理器在RTOS(實時多任務操作系統)上開發,成本高,開發周期長。采用16位的MSP430的串口服務器,成本較低,而且功耗較低,配置以太網控制器CS8900A,有很廣泛的應用場合。采用16位微處理器、網絡接口芯片和精簡TCP/IP協議的設計,實現RS-232串口和網絡接口RJ45的轉換,既經濟,又簡單。?

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

參考文獻?

[1] 張晞,王德銀,張晨. MSP430系列單片機實用C語言程序設計. 北京:人民郵電出版社,2005:2-4.?

[2]?張鵬,張愛民,李杰. 基于以太網控制器CS8900A實現嵌入式系統的網絡互聯. 電子工程師,2002(2):4-5.?

[3] 張曉飛. 基于MSP430單片機的嵌入式網絡終端.合肥工業大學碩士論文, 2006:7-8.?

[4] 姚軍,溫陽東,謝毓廣. 基于MSP430F1611 MCU的微機保護控制單元. 電氣時代,2005.?

[5]?MSP430 internet connectivity. http://microcontroller.ti.com
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产成人一区免费观看 | 亚洲欧美另类在线视频 | 亚洲色图日韩精品 | 99re这里 | 人人爽人人爽人人片av | 日日噜噜夜夜狠狠久久丁香七 | 精品亚洲成a人在线播放 | 国产成人免费观看 | 性爱免费视频 | 久久精品8| 久久狠色噜噜狠狠狠狠97 | 国产精品天堂avav在线 | 欧美成人网在线综合视频 | 午夜私人影院免费体验区 | 国产亚洲91 | 丝袜紧身裙国产在线播放 | 午夜在线免费视频 | 亚洲伊人久久大香线蕉苏妲己 | 欧美日韩一区二区三区视频播 | 免费观看一级特黄欧美大片 | 中文国产欧美在线观看 | 午夜久久久久久亚洲国产精品 | 91香蕉视频污在线观看 | 青青草成人在线 | 欧美一级成人免费大片 | 国产精品自在线拍 | 亚洲色图制服诱惑 | 欧美在线观看不卡 | 一级毛片牲交大片 | 在线播放亚洲精品富二代91 | 成人免费看毛片 | 一个人看www在线观看免费视频 | 99视频免费在线 | 亚洲国产成人资源在线软件 | 久久99精品久久久久久欧洲站 | 亚洲成人网在线播放 | 黄在线网站 | 国产精品欧美日韩一区二区 | 成人国产在线视频 | www.丁香 | 久久99视频 |