<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 英利工控主板8串口應用方案

     2011-1-27             

            異步串行通訊口(UART)是在工業自動化中應用最為廣泛的通訊接口之一,其接口形式包括RS232C、RS485、RS422。作為以網絡通訊為特色的英利嵌入式Linux主板,常常會面臨支持多串口的應用。如按照國電標準,對于智能電表終端設備就有8串口的要求;國家環保局對監測設備的標準規范中也有8串口的要求等。目前英利EM9x60系列工控主板上均自帶6個串口,為了方便客戶高效、低成本地實現多串口的擴展,我們專門設計了采用USB接口轉換的2串口擴展單元ETA501作為客戶實際擴展的參考。ETA501模塊利用英利工控主板上的一個USB接口即可很方便地實現基于英利Linux嵌入式主板的8串口應用方案。同時,通過精簡ISA總線擴展串口的應用方案參見《英利工控主板10串口應用方案》

     

            本文將以EM9460為例介紹ETA501的使用方法,該方法同樣適用于英利的其他Linux嵌入式主板產品,如EM9160、EM9260等。

     

            該方案的系統構成如下圖所示:

     

    由EM9460嵌入式主板與ETA501構成的8串口系統

     

            ETA501是USB轉雙串口擴展模塊,USB2.0兼容,支持即插即用。擴展的每個串口通道支持7、8或9位數據位,1或2位停止位,奇偶校驗;支持從50bps到12Mbps的通訊波特率;具有自動硬件或軟件流控功能。用戶可通過以下步驟來快速實現8串口應用方案:

     

            1、原型評估
            ETA501產品外觀及結構布局如下:

     

    ETA501側面圖

    ETA501 USB轉雙串口模塊

     

    ETA501結構布局

    ETA501布局圖

     

            其中,CN1和CN2是兩個9線TTL電平串口(輸出高電平3.3V,輸入5V兼容),它們按相同的線序排列,信號定義如下:

     

    信號名稱及簡要描述

    PIN#

    信號名稱及簡要描述

           DCD#

    1

    2

            DSR#
           RXD

    3

    4

            RTS#
           TXD

    5

    6

            CTS#
           DTR#

    7

    8

            RI#
           GND

    9

    10

            VCC(+5V)

     

            CN3:標準USB Plugs,信號定義如下:

     

    信號名稱及簡要描述

    PIN#

    1

    V BUS(+5V)

    2

    D-

    3

    D+

    4

    GND

     

            通訊指示燈:
            D1:TXD1——擴展串口1數據發送指示燈
            D2:RXD1——擴展串口1數據接收指示燈
            D3:TXD2——擴展串口2數據發送指示燈
            D4:RXD2——擴展串口2數據接收指示燈

     

            從英利公司購買EM9x60開發評估套件和ETA501,通過USB進行連接,可進行快速的功能評估。USB轉串口的驅動程序已經固化在英利嵌入式Linux工控主板中,在此基礎上,客戶可利用英利公司為ETA501提供的基本通訊應用程序源代碼快速評估多串口擴展單元的基本性能是否滿足其具體的應用需求。

     

            2、設計應用產品
            ETA501的接插件布局以及信號定義詳見《ETA501 USB轉雙串口模塊使用手冊》,客戶在作具體應用設計時,可將ETA501直接設計在相應的應用電路中,根據需要修改各個串口的驅動形式,如RS232C、RS485、RS422等。在應用底板設計過程中當然還需要參考相應嵌入式Linux主板的評估底板電路原理圖和PCB圖。

     

            3、應用程序開發
            在Linux應用環境中對擴展的雙串口的編程方法與標準的串口應用程序完全一樣,只是需要注意打開擴展串口的設備名稱有所不同,對于擴展串口需采用“/dev/ttyUSBx”,而不是板卡上的串口名稱“/dev/ttySx”。

     

            英利所提供的擴展驅動庫文件放置在根文件系統/lib/modules/2.6.30目錄下,相關的驅動文件包括:
            /lib/modules/2.6.30/usbserial.ko
            /lib/modules/2.6.30/vizzini.ko

     

            在使用時需要首先載入該驅動功能模塊,在Linux操作系統下,一般是利用系統的內部指令insmod來實現向系統內核載入模塊:
            [root@EM9X60 /mnt/nandflash]# insmod  /lib/modules/2.6.30/usbserial.ko
            [root@EM9X60 /mnt/nandflash]# insmod  /lib/modules/2.6.30/vizzini.ko

     

            在嵌入式領域的應用中,往往是需要自動加載模式的方式,這一功能可通過編程來實現,利用C++中的構造函數以及析構函數可以很好地實現驅動功能模塊的自動載入和自動卸載。

     

            定義一個class CSerial 串口通訊類,在該類中主要實現串口通訊應用的功能。

     

            其構造函數:
            CSerial:: CSerial ( )
            {
                    system( 'insmod /lib/modules/2.6.30/usbserial.ko' ); // 載入擴展串口驅動模塊
                    system( 'insmod /lib/modules/2.6.30/vizzini.ko' );
            }

     

            對應的析構函數:
            CSerial::~CSerial( )
            {
                    system( 'rmmod vizzini.ko' ); // 卸載驅動模塊
                    system( 'rmmod usbserial.ko' );
            }

     

            應用程序中,一旦定義了class CSerial 的實例就實現了鍵盤模塊的自動載入。后續就可按照標準打開串口設備文件的方式操作擴展串口。在Linux系統中,所有的設備文件都位于“/dev”目錄下,EM9460板卡上6個串口所對應的設備名依次為:“/dev/ttyS1”、“/dev/ttyS2”、“/dev/ttyS3”、“/dev/ttyS4”、“/dev/ttyS5”、“/dev/ttyS6”,通過ETA501 USB轉雙串口的設備名依次為:“/dev/ttyUSB0”、“/dev/ttyUSB1”。

     

            為了方便統一應用程序,可以做以下的操作,如:

     

            if( PortNo>6 )
                    sprintf( portname, '/dev/ttyUSB%d', PortNo-6); // PortNo為串口端口號,從7開始
            else
                    sprintf( portname, '/dev/ttyS%d', PortNo ); // PortNo為串口端口號,從1開始 
            m_fd = open( portname,O_RDWR | O_NOCTTY | O_NONBLOCK);

     

            具體串口通訊的細節可參考《英利Linux工控主板應用程序編程手冊》中的相關章節。如果還需要更多的串口擴展,可參閱《英利工控主板10串口應用方案》中的介紹作進一步的串口擴展。客戶可以綜合這兩個方案并進行拓展應用,以擴展出符合自己需求數量的串口。

    久热青青青在线视频精品| 最新国产成人精品2024| 国产精品美女久久久久久2018 | 波多野结衣精品一区二区三区| 日本无码小泬粉嫩精品图| 少妇人妻偷人精品无码视频 | 久久久精品久久久久久 | 午夜精品久久久久久久无码| 久久亚洲精品无码VA大香大香| 亚洲午夜精品一级在线播放放| 亚洲精品中文字幕乱码| 亚洲精品乱码久久久久久| 国产成人一区二区动漫精品| 国产韩国精品一区二区三区久久| 亚洲日韩一页精品发布| 色老成人精品视频在线观看| 中文字幕av日韩精品一区二区 | mm1313亚洲精品国产| 久久久无码精品人妻一区| 99久久99久久免费精品小说| 国内精品国产成人国产三级| 国产精品青草久久| 久久乐国产综合亚洲精品| 亚洲精品综合一二三区在线| 国语自产精品视频在线观看| 日本精品一区二区三区在线视频 | 国产精品冒白浆免费视频| 无码精品国产dvd在线观看9久| 色婷婷在线精品国自产拍| 国产在线精品无码二区| 久久国产精品无码网站| 国产午夜精品福利| 国产精品成人免费一区二区| 亚洲国产精品一区二区三区在线观看| 熟妇无码乱子成人精品| 99精品国产综合久久久久五月天| 国产成人综合久久精品尤物| 国产乱码精品一区三上| 思思91精品国产综合在线| 国产乱码精品一区二区三区香蕉| 无码精品A∨在线观看十八禁 |