新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于SC28L198的多串口服務(wù)器設(shè)計(jì)

基于SC28L198的多串口服務(wù)器設(shè)計(jì)

作者: 時(shí)間:2011-09-15 來源:網(wǎng)絡(luò) 收藏
3.3 收發(fā)模塊

本文引用地址:http://m.butianyuan.cn/article/155750.htm

  圖3描述了接收模塊的工作流程。當(dāng)中的某個(gè)接口通道接收到設(shè)備的一幀數(shù)據(jù)時(shí),這些數(shù)據(jù)將被送往數(shù)據(jù)隊(duì)列,同時(shí)保存相應(yīng)的通道號(hào)。當(dāng)打包時(shí)間到了規(guī)定的時(shí)間或者打包的串口數(shù)據(jù)已經(jīng)達(dá)到規(guī)定的最大長(zhǎng)度(200字節(jié))時(shí),該數(shù)據(jù)包將被發(fā)往以太網(wǎng)。圖4描述了串口發(fā)送模塊的工作流程。當(dāng)該系統(tǒng)通過以太網(wǎng)接收到主機(jī)發(fā)來的一幀數(shù)據(jù)或命令時(shí),ARM處理器將去掉以太網(wǎng)幀頭、IP頭和UDP頭,提取出串口通道號(hào),將分離出的串口數(shù)據(jù)幀發(fā)送到對(duì)應(yīng)的串口通道。

圖3 串口數(shù)據(jù)接收流程

圖4 串口數(shù)據(jù)發(fā)送流程

  3.4初始化程序

  在整個(gè)系統(tǒng)開始工作之前,程序必須對(duì)中的每個(gè)通道進(jìn)行初始化。ARM處理器LM8962通過向SC28L198的寄存器寫入命令來完成整個(gè)初始化過程。為了保證LM8962與串口設(shè)備之間傳輸?shù)臄?shù)據(jù)準(zhǔn)確無誤,串口需要規(guī)定每個(gè)通道的通信格式。該格式包括發(fā)送數(shù)據(jù)波特率和接收數(shù)據(jù)波特率、數(shù)據(jù)長(zhǎng)度、停止位和校驗(yàn)位等。整個(gè)初始化過程的程序如下:

  void UART_Init( void) {

  uchar channel;

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

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

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

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

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

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

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

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

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

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

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

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

  Tx 和Rx* /

  }

  }

  4 結(jié)論

  筆者研究了SC28L198的多串口以太網(wǎng)數(shù)據(jù)轉(zhuǎn)換,采用μC/OS-II操作系統(tǒng)和TCP/IP協(xié)議實(shí)現(xiàn)了實(shí)時(shí)、高效的數(shù)據(jù)傳輸,為RS232/422/485設(shè)備提供了方便快捷的以太網(wǎng)連接。該系統(tǒng)能夠?yàn)榇谠O(shè)備提供網(wǎng)絡(luò)化監(jiān)控、管理,以及遠(yuǎn)距離數(shù)據(jù)服務(wù)。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉