<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串口應(yīng)用方案

     2011-1-27             

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

     

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

     

            該方案的系統(tǒng)構(gòu)成如下圖所示:

     

    由EM9460嵌入式主板與ETA501構(gòu)成的8串口系統(tǒng)

     

            ETA501是USB轉(zhuǎn)雙串口擴(kuò)展模塊,USB2.0兼容,支持即插即用。擴(kuò)展的每個(gè)串口通道支持7、8或9位數(shù)據(jù)位,1或2位停止位,奇偶校驗(yàn);支持從50bps到12Mbps的通訊波特率;具有自動(dòng)硬件或軟件流控功能。用戶(hù)可通過(guò)以下步驟來(lái)快速實(shí)現(xiàn)8串口應(yīng)用方案:

     

            1、原型評(píng)估
            ETA501產(chǎn)品外觀(guān)及結(jié)構(gòu)布局如下:

     

    ETA501側(cè)面圖

    ETA501 USB轉(zhuǎn)雙串口模塊

     

    ETA501結(jié)構(gòu)布局

    ETA501布局圖

     

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

     

    信號(hào)名稱(chēng)及簡(jiǎn)要描述

    PIN#

    信號(hào)名稱(chēng)及簡(jiǎn)要描述

           DCD#

    1

    2

            DSR#
           RXD

    3

    4

            RTS#
           TXD

    5

    6

            CTS#
           DTR#

    7

    8

            RI#
           GND

    9

    10

            VCC(+5V)

     

            CN3:標(biāo)準(zhǔn)USB Plugs,信號(hào)定義如下:

     

    信號(hào)名稱(chēng)及簡(jiǎn)要描述

    PIN#

    1

    V BUS(+5V)

    2

    D-

    3

    D+

    4

    GND

     

            通訊指示燈:
            D1:TXD1——擴(kuò)展串口1數(shù)據(jù)發(fā)送指示燈
            D2:RXD1——擴(kuò)展串口1數(shù)據(jù)接收指示燈
            D3:TXD2——擴(kuò)展串口2數(shù)據(jù)發(fā)送指示燈
            D4:RXD2——擴(kuò)展串口2數(shù)據(jù)接收指示燈

     

            從英利公司購(gòu)買(mǎi)EM9x60開(kāi)發(fā)評(píng)估套件和ETA501,通過(guò)USB進(jìn)行連接,可進(jìn)行快速的功能評(píng)估。USB轉(zhuǎn)串口的驅(qū)動(dòng)程序已經(jīng)固化在英利嵌入式Linux工控主板中,在此基礎(chǔ)上,客戶(hù)可利用英利公司為ETA501提供的基本通訊應(yīng)用程序源代碼快速評(píng)估多串口擴(kuò)展單元的基本性能是否滿(mǎn)足其具體的應(yīng)用需求。

     

            2、設(shè)計(jì)應(yīng)用產(chǎn)品
            ETA501的接插件布局以及信號(hào)定義詳見(jiàn)《ETA501 USB轉(zhuǎn)雙串口模塊使用手冊(cè)》,客戶(hù)在作具體應(yīng)用設(shè)計(jì)時(shí),可將ETA501直接設(shè)計(jì)在相應(yīng)的應(yīng)用電路中,根據(jù)需要修改各個(gè)串口的驅(qū)動(dòng)形式,如RS232C、RS485、RS422等。在應(yīng)用底板設(shè)計(jì)過(guò)程中當(dāng)然還需要參考相應(yīng)嵌入式Linux主板的評(píng)估底板電路原理圖和PCB圖。

     

            3、應(yīng)用程序開(kāi)發(fā)
            在Linux應(yīng)用環(huán)境中對(duì)擴(kuò)展的雙串口的編程方法與標(biāo)準(zhǔn)的串口應(yīng)用程序完全一樣,只是需要注意打開(kāi)擴(kuò)展串口的設(shè)備名稱(chēng)有所不同,對(duì)于擴(kuò)展串口需采用“/dev/ttyUSBx”,而不是板卡上的串口名稱(chēng)“/dev/ttySx”。

     

            英利所提供的擴(kuò)展驅(qū)動(dòng)庫(kù)文件放置在根文件系統(tǒng)/lib/modules/2.6.30目錄下,相關(guān)的驅(qū)動(dòng)文件包括:
            /lib/modules/2.6.30/usbserial.ko
            /lib/modules/2.6.30/vizzini.ko

     

            在使用時(shí)需要首先載入該驅(qū)動(dòng)功能模塊,在Linux操作系統(tǒng)下,一般是利用系統(tǒng)的內(nèi)部指令insmod來(lái)實(shí)現(xiàn)向系統(tǒng)內(nèi)核載入模塊:
            [root@EM9X60 /mnt/nandflash]# insmod  /lib/modules/2.6.30/usbserial.ko
            [root@EM9X60 /mnt/nandflash]# insmod  /lib/modules/2.6.30/vizzini.ko

     

            在嵌入式領(lǐng)域的應(yīng)用中,往往是需要自動(dòng)加載模式的方式,這一功能可通過(guò)編程來(lái)實(shí)現(xiàn),利用C++中的構(gòu)造函數(shù)以及析構(gòu)函數(shù)可以很好地實(shí)現(xiàn)驅(qū)動(dòng)功能模塊的自動(dòng)載入和自動(dòng)卸載。

     

            定義一個(gè)class CSerial 串口通訊類(lèi),在該類(lèi)中主要實(shí)現(xiàn)串口通訊應(yīng)用的功能。

     

            其構(gòu)造函數(shù):
            CSerial:: CSerial ( )
            {
                    system( 'insmod /lib/modules/2.6.30/usbserial.ko' ); // 載入擴(kuò)展串口驅(qū)動(dòng)模塊
                    system( 'insmod /lib/modules/2.6.30/vizzini.ko' );
            }

     

            對(duì)應(yīng)的析構(gòu)函數(shù):
            CSerial::~CSerial( )
            {
                    system( 'rmmod vizzini.ko' ); // 卸載驅(qū)動(dòng)模塊
                    system( 'rmmod usbserial.ko' );
            }

     

            應(yīng)用程序中,一旦定義了class CSerial 的實(shí)例就實(shí)現(xiàn)了鍵盤(pán)模塊的自動(dòng)載入。后續(xù)就可按照標(biāo)準(zhǔn)打開(kāi)串口設(shè)備文件的方式操作擴(kuò)展串口。在Linux系統(tǒng)中,所有的設(shè)備文件都位于“/dev”目錄下,EM9460板卡上6個(gè)串口所對(duì)應(yīng)的設(shè)備名依次為:“/dev/ttyS1”、“/dev/ttyS2”、“/dev/ttyS3”、“/dev/ttyS4”、“/dev/ttyS5”、“/dev/ttyS6”,通過(guò)ETA501 USB轉(zhuǎn)雙串口的設(shè)備名依次為:“/dev/ttyUSB0”、“/dev/ttyUSB1”。

     

            為了方便統(tǒng)一應(yīng)用程序,可以做以下的操作,如:

     

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

     

            具體串口通訊的細(xì)節(jié)可參考《英利Linux工控主板應(yīng)用程序編程手冊(cè)》中的相關(guān)章節(jié)。如果還需要更多的串口擴(kuò)展,可參閱《英利工控主板10串口應(yīng)用方案》中的介紹作進(jìn)一步的串口擴(kuò)展。客戶(hù)可以綜合這兩個(gè)方案并進(jìn)行拓展應(yīng)用,以擴(kuò)展出符合自己需求數(shù)量的串口。

    美女免费精品高清毛片在线视 | 久久精品免费视频观看| 久久99精品国产麻豆婷婷| 精品国产不卡一区二区三区 | 无码人妻精品一区二区三区66| 午夜精品成年片色多多| 四虎永久在线精品免费影视| AV天堂午夜精品一区| 99精品视频在线观看免费播放 | 久久免费观看国产精品88av| 国产成人精品日本亚洲网址| 日本精品一区二区三区视频| 国产精品99在线播放| 精品国产美女福利到在线不卡 | 国产精品乱码高清在线观看| 亚洲精品免费在线| 国产在线精品99一卡2卡| 国内精品伊人久久久久av一坑| 日本国产成人精品视频| 久久国产精品成人免费| 国产精品成人观看视频| 国产精品美女一区二区三区 | 久久亚洲国产精品| 国产精品无码v在线观看| 亚洲精品国产成人99久久| 蜜桃精品免费久久久久影院 | 久久精品国产99久久| 久久久不卡国产精品一区二区| 国产精品久久久精品三级| 国产AV国片精品| 中文国产成人精品少久久| 国产精品亚洲一区二区三区| 精品国偷自产在线视频99| 国产精品免费网站| 精品熟女少妇aⅴ免费久久| 日韩加勒比一本无码精品| 无码国产精品一区二区免费式直播 | 国产精品嫩草影院人体模特| 91精品国产自产91精品| 国产精品国产三级国产AⅤ| 精品久久久无码中字 |