新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于MSP430F149的串口服務器設計

        基于MSP430F149的串口服務器設計

        作者: 時間:2011-08-29 來源:網絡 收藏
        2.1初始化模塊

        本文引用地址:http://www.104case.com/article/155831.htm

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

          初始化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所示。

          

        圖3 TCP/IP的4層結構

          圖3 TCP/IP的4層結構



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凤庆县| 孟州市| 土默特左旗| 蕉岭县| 裕民县| 沧源| 东乡| 湘阴县| 当涂县| 鄂托克前旗| 西乌珠穆沁旗| 余姚市| 渭源县| 南阳市| 乌审旗| 儋州市| 交口县| 青海省| 肥城市| 同心县| 新昌县| 綦江县| 天柱县| 凤城市| 宝应县| 南阳市| 宁明县| 谷城县| 邵阳县| 项城市| 江门市| 甘德县| 鲁甸县| 两当县| 黄梅县| 满洲里市| 东乡| 鹤壁市| 黄骅市| 白河县| 伊春市|