激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月

EM9x60串口通訊應用方案

 2008-7-18             

        串口通訊,是工業自動化、智能終端、通信管理等領域傳統且重要的通訊手段。最常用到的串口通信模式往往是兩種:RS232和RS485。其中RS232通訊方式有三線制和九線制兩種。

 

        英創所有型號的嵌入式主板均提供有串行通信接口(串口),根據不同的主板型號,串口的數量也不同,如: ETR232i、 ETR186提供有3個串口;EM9000、EM9161提供有4個串口;EM9260、EM9360、EM9160則直接提供多達6個串口。除了系統板載的串口以外,客戶還可根據自己的應用進行靈活擴展?;谟摰那度胧较到y的精簡ISA總線或專用的擴展底板,可擴展出更多的通用串口,現可用的擴展配件有:ETA502、ETA503、ETA504。所有的串口的通訊的最高波特率均能達到115200bps。

 

        英創工控主板直接提供的串口既有標準的RS232接口,也有TTL電平的串行接口,這意味著,TTL電平的串口只需要添加簡單的外圍電路驅動,就可直接轉換為標準RS232、RS485接口以及RS422接口。某些用戶(如電力系統用戶)還可以根據實際情況需要,在串口上添加光電隔離電路,以達到保護端口的目的。英創公司給用戶提供的開發底板(隨基本開發套件提供)就充分地考慮了用戶對于串口應用的多方面要求,既引出了RS232接口,也引出了 RS485接口,滿足了用戶靈活使用的需要。

 

串口擴展模塊

        英創公司所提供的基于系統提供串口的嵌入式主板,均是通過嵌入式主板上的插針的方式,作為與用戶的接口。這些串口,能夠滿足大多數的應用環境。除止之外,還可以使用英創公司的串口擴展模塊進行擴展。

 

ETA503

        ETA503是基于英創公司的嵌入式系統所特有的精簡ISA總線,擴展4個串口的擴展模塊。4個串口均是9線制通用RS232電平信號。

        該模塊可以通過ISA總線在英創公司的所有嵌入式主板(X86系列及ARM系列)中使用,即可以通過短的排線連接在ISA總線上,這種方式可以快速實現功能評估,也可以將ETA503當作一個元器件一樣,用插針插在應用系統中所提供的插座上(ARM9+ETA503應用方案示列參考:《WinCE系統多串口擴展方案》)。

 

RS485通訊接口

        在很多的工業應用場合中,長距離的通訊,仍是采用RS485的通訊方式,這種方式的應用簡單、通訊可靠、成本也很低。

 

        其接法是:將通用的串行通訊口的接收(RX)與發送(TX)分別接至RS485接口芯片的接收輸出(RO)與發送輸入(TI)口,再用一個信號來控制RS485的收/發狀態。英創公司提供的RS485通訊電路中,對RS485的收發控制采用了自動收/發控制電路。這樣,一是減少了對系統資源的占用,二是保持與RS232一樣的驅動程序,從而提高程序的執行效率。

 

        自動收/發控制原理:

 

        在通訊空閑狀態,TXD(數據發送信號)為高, A點為高,B點經R21給C11充電,其充電時間為T1,該時間定為串口發送一個字節所需的時間,由R21與C11的參數來確認。充滿后,R/T為低,RS485處于接收數據的狀態。

 

        在發送數據時,TXD起始位產生第一個下降沿,使A點為低,B點經過D5進行快速放電,使R/T很快變為高,RS485處于數據發送狀態。在發送過程中,當TXD變成高電平時,C11通過R21緩慢充電,使R/T仍然保持在發送狀態,可有效吸收總線上的反射信號。當RC充電結束,使R/T轉入接受狀態時,總線上的上拉、下拉電阻將維持TXD高電平的發送狀態,直至整個bit發送結束。

 

        當數據發送完畢以后,TXD變為高電平,RC又開始充電,即經T1時間后,RS485又轉換為數據接收狀態。

 

        雖然RS485接口芯片具有一定的抗浪涌能力,但是在很多的工業現場,仍存在對接口芯片及系統有威脅的干擾。所以通常會采取一定的措施來進行系統的保護。如光電隔離與TVS等。需注意的是,如加了光電隔離,必須使其電源也隔開,這樣才能起到隔離作用。

 

ETA232

        在英創所提供的嵌入式主板中,即給了RS232電平信號的串行通訊接口,也給出了TTL電平信號的串行通訊接口,且TTL電平信號的串口支持MODEM控制。如用戶在使用中,要用到TTL電平信號的串口來作RS232的通訊或是控制MODEM,則需要將TTL電平信號轉換為RS232電平信號。為此,英創公司也提供了相應的轉換模塊ETA323,將TTL接口的信號轉換為9線制標準的RS232接口。

 

基于英創公司的嵌入式系統的串口的基本應用

        對于英創公司所提供的串口通訊的驅動,均是以中斷服務的形式,實現與底層硬件間的通訊。

 

        下面以X86系列為例,說明其最基本的應用原理:

 

        中斷服務程序的任務,就是對串口數據的接收及用戶數據的發送進行處理并對數據環形BUFF管理的過程。

 

        當有數據被接收時,中斷服務程序便將所接收到的數據從硬件模塊中取出,并按一定的規則送入到指定的串口的接收BUFF中存貯。用戶使用GetInputData( )函數來讀取接收BUFF中的數據。應注意的是,GetInputData( )函數一次只能從BUFF中讀取一個字節的數據,所以,在應用程序中,應重復調用這個函數直到函數的返回值為-1時,才表明將接收BUFF中的數據全部讀出。

 

        當用戶要發送數據時,調用PutOutputData ( )將用戶已準備好的數據,依次填入數據發送BUFF中。在數據填完后,調用StartSend( )啟動串口發送中斷,這時數據的發送將由中斷服務程序來完成。應注意的是,PutOutputData ( )函數一次也只能將一個字節的數據填入BUFF中,要反復調用該函數直到所有的數據都被填入BUFF。如PutOutputData ( )函數返回了-1,則表明BUFF已被填滿,再往BUFF中填數據,將不會被接授。

 

        對于用戶的應用程序,可以參考以下的說明:

 

        1、 用戶可以用查詢或定時或其它的方式,對串口的數據讀取。如確認接收BUFF中有數據存在,建議一次將其全部讀出。讀取串口數據的參考程序如下:

 

int ReadRxdBuff( int ComIdx , unsigned char *RxBuff , int MaxLen )

{

       int i1,i2;

 

       for(i2=0 ; ; )

       {

           // 檢查某個串口是否有數據,如沒有數據則退出,否則,將數據放入緩存器以便使用

           i1 = GetInputData( ComIdx );

           if( i1==-1 )

                     break;

              RxBuff[i2]=char ( i1 );

              i2++;     

              if(i2==MaxLen)

                     break;

       }

       return i2;

}

 

        函數的參數說明如下:

 

        ComIdx                               要讀取的串口序號

        *RxBuff                               讀出的數據要存放的數據緩存器

        MaxLen                               讀出數據的最大長度,以限制一次性讀取的長度

 

        2、當用戶有數據需要發送時,首先應將要發送的數據準備好,再依次將的要發送的數據一次性全部填入對應的發送BUFF中。再啟動數據發送。應注意的是,要發送的數據的長度要有一定的限制,不能超出發送BUFF的長度。數據發送的參考程序如下:

 

int SendTxdBuff( int ComIdx , unsigned char *TxBuff , int TxLen )

{

       int i1,i2;

      

       for( i2=0; i2 <>

       {

           i1=PutOutputData( ComIdx ,TxBuff[i2] );

              // 每填入一個數據,建議檢查一下BUFF是否被填滿

              if( i1==-1 )

                     break;

       }

       // 數據被填入BUFF后,應啟動發送中斷。讓中斷程序來完成數據的發送

       StartSend( ComIdx );

       return i2;

}

 

        函數的參數說明如下:

 

        ComIdx                               要發送數據的串口序號

        *TxBuff                               要發送的數據

        TxLen                                  發送數據的長度

主站蜘蛛池模板: bt国产| 麻豆影视视频高清在线观看| 一级午夜免费视频| 亚洲一区二区三区在线| 免费看三级全黄| 国产一线视频在线观看高清| 美女高清视频喷水| 精品视频在线观看你懂的一区| 国产亚洲精品久久久久久牛牛| 日本日韩欧美| 亚洲乱码一二三四区国产| 免费又色又爽1000禁片| 国内精品视频在线播放| 国产精品久久久久久久久久久不卡| 婷婷色在线播放| xx中文字幕乱偷avxx| 国产日产久久高清欧美一区| 麻豆精品久久精品色综合| 日本一级不卡一二三区免费| 亚洲精品三级| 亚洲性网| 亚洲自拍第二页| 1024国产看片在线观看| avav在线精品| www草逼| 亚洲一区二区三区久久久久| 成人国产第一区在线观看| 国产在线视欧美亚综合| 国产精品乱码一区二区三区 | 黄色一级视频播放| 嫩模被xxxx视频在线观看| 成年午夜视频免费观看视频| 欧美日韩色综合网站| 日韩欧美在线一区二区三区| 亚洲3级| 香蕉视频在线观看免费| 亚欧在线精品免费观看一区| 亚洲国产成人久久综合区| 亚洲福利| 色综合综合色| 青青草国产青春综合久久|