• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于μC/OS-II和TCP/IP協議的多串口服務器

    基于μC/OS-II和TCP/IP協議的多串口服務器

    作者: 時間:2011-09-12 來源:網絡 收藏
    3.3 SC28L198收發模塊

    本文引用地址:http://www.czjhyjcfj.com/article/150228.htm

      圖3描述了接收模塊的工作流程。當SC28L198中的某個接口通道接收到設備的一幀數據時,這些數據將被送往數據隊列,同時保存相應的通道號。當打包時間到了規定的時間或者打包的串口數據已經達到規定的最大長度(200字節)時,該數據包將被發往以太網。圖4描述了串口發送模塊的工作流程。當該系統通過以太網接收到主機發來的一幀數據或命令時,ARM處理器將去掉以太網幀頭、IP頭和UDP頭,提取出串口通道號,將分離出的串口數據幀發送到對應的串口通道。

      

    串口接收模塊的工作流程

      圖3 串口數據接收流程

      

    串口數據發送流程

      圖4 串口數據發送流程

      3.4初始化程序

      在整個系統開始工作之前,程序必須對SC28L198中的每個通道進行初始化。ARM處理器LM8962通過向SC28L198的寄存器寫入命令來完成整個初始化過程。為了保證LM8962與串口設備之間傳輸的數據準確無誤,串口需要規定每個通道的通信格式。該格式包括發送數據波特率和接收數據波特率、數據長度、停止位和校驗位等。整個初始化過程的程序如下:

      void UART_Init( void) {

      uchar channel;

      UART_WR ( GCCR,0 x06) ; /* 全局配置* /

      UART_WR ( CR( 0), 0xF8) ; /* 重啟芯片* /

      UART_WR ( ICR, 0x00) ; /* 設置中斷水平* /

      UART_WR ( IVR,0x00) ; /* 設置中斷仲裁門檻* /

      for( channel = 0; channel 8; channel + + ) {

      UART_WR ( MR0( channel) ,0xC0) ; /* 無流量控制* /

      UART_WR( MR1( channel) ,0x77) ; /* 設置數據格式* /

      UART_WR( MR2( channel) ,0x00) ; /* 普通模式* /

      UART_WR( RXCSR( channel) ,0x0E) ; /* 設置接收波特率* /

      UART_WR( TXCSR( channel) ,0x0E) ; /* 設置發送波特率* /

      UART_WR( CR( channel) ,0x28) ; /* 鎖住收發器* /

      UART_WR( IMR( channel) ,0x03) ; /* 開啟

      Tx 和Rx* /

      }

      }

      4 結論

      系統采用μ操作系統和實現了實時、高效的數據傳輸,為RS232/422/485設備提供了方便快捷的以太網連接。該系統能夠為串口設備提供網絡化監控、管理,以及遠距離數據服務。

    tcp/ip相關文章:tcp/ip是什么



    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 忻州市| 石柱| 芷江| 景洪市| 乌恰县| 厦门市| 丹凤县| 弥勒县| 太谷县| 西青区| 恩施市| 景德镇市| 溧阳市| 大厂| 札达县| 广安市| 滨州市| 丰顺县| 昆明市| 灵丘县| 黎城县| 常山县| 清镇市| 隆林| 凌源市| 永年县| 定西市| 仲巴县| 荔浦县| 贡觉县| 射洪县| 师宗县| 蓝田县| 阳谷县| 文水县| 新龙县| 定远县| 织金县| 鄂托克前旗| 尚义县| 静安区|