中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > PC機和激光沒距雷達(dá)雙路高速數(shù)據(jù)通信接口卡

        PC機和激光沒距雷達(dá)雙路高速數(shù)據(jù)通信接口卡

        作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

        摘要:闡述了PC機和激光測距雷達(dá)雙路高速串行數(shù)據(jù)通訊接口卡的系統(tǒng)構(gòu)成。重點介紹了RS-422A高速串行通訊接口及收發(fā)控制、接口卡和PC機通信緩沖區(qū)的共享、卡上資源分配等關(guān)鍵性問題。

        本文引用地址:http://www.antipu.com.cn/article/244631.htm

        關(guān)鍵詞:RS-422 高速串行通信 接口卡 雙端口RAM FPGA

        在我們智能自主式移動機器人項目的研制中,采用了兩路二維激光雷達(dá)來完成障礙物檢測、路標(biāo)檢測及地圖匹配等工作。我們采用的激光雷達(dá)均提供了一種RS-422串行通訊接口。雷達(dá)通過與PC機的握手通信完成初始化工作之后,便分別以40ms和80ms為工作周期將測距結(jié)果以500Kbps的速率發(fā)送至PC機。PC機收到每一幀數(shù)據(jù)后便開始隨后的處理工作。工作周期為80ms的激光雷達(dá)每幀數(shù)據(jù)長度為812字節(jié),工作周期為40ms的激光雷達(dá)每幀數(shù)據(jù)長度為412字節(jié)。

        若采用目前市面上能提供的普通串行數(shù)據(jù)通信卡來完成PC機與激光雷達(dá)的數(shù)據(jù)通信有三個缺點:

        ·商用通信卡很少能達(dá)到如此高的通訊速率;

        ·商用通信卡只能一個字節(jié)一個字節(jié)的接收,即使啟用卡上的FIFO一次也只能收?。保秱€字節(jié),這樣必然消耗PC機很多寶貴的數(shù)據(jù)處理時間;

        ·由于PC機運行的windows98系統(tǒng)是非任務(wù)搶斷型的操作系統(tǒng),在如此高的通訊速率要求下(兩路雷達(dá)數(shù)據(jù)同時到來時對PC機來說瞬時通訊速率為1Mbps,有時會導(dǎo)致系統(tǒng)丟失一幀數(shù)據(jù)中的某幾個字節(jié),從而使整幀數(shù)據(jù)成為廢幀,影響了系統(tǒng)的可靠工作。

        因此,必須根據(jù)應(yīng)用要求,自行研制PC機和激光測距雷達(dá)雙路高速數(shù)據(jù)通信接口卡。

        1 接口卡研制目標(biāo)和總體方案

        針對激光測距雷達(dá)在智能自主式移動機器人中的應(yīng)用要求,我們對接口卡的設(shè)計提出了如下的總體目標(biāo):能夠順利地接收并存儲最多三幀的兩路雷達(dá)數(shù)據(jù),并按PC機命令要求,完成一定的簡單數(shù)據(jù)預(yù)處理后將結(jié)果轉(zhuǎn)送給PC機,由PC機做進(jìn)一步的高級處理。

        根據(jù)系統(tǒng)要求,板卡上的CPU決定選用80C196KD單片機。80C196KD是Intel公司繼MCS-96之后的一種高性能16位單片機,它功能強、速度快、使用方便、抗干擾性能好,在、智能儀表、家電中都得到了廣泛應(yīng)用[1]。系統(tǒng)總體方案見圖1。

        2 系統(tǒng)設(shè)計中的幾項關(guān)鍵技術(shù)

        2.1 RS-422通訊接口及收發(fā)控制

        RS-422A通信接口標(biāo)準(zhǔn)使用單一+5V電源供電,是一個平衡型接口。它采用差動發(fā)送、差動接收的工作方式,發(fā)送和接收電路使用各自獨立的平衡驅(qū)動器、接收器對,因而排除了各接收器地電勢差帶來的影響。使用RS-422A接口標(biāo)準(zhǔn)最大通信速率可達(dá)10Mb/s(對應(yīng)通信距離12m),最大通信距離可達(dá)1200m(對應(yīng)通信速率為10kb/s。

        對于500kb/s高速的串行通信,靠80C196KD自帶的串行通信接口已無法承擔(dān),必須采用專用的異步串行通信收發(fā)器(UART)來實現(xiàn)。下面先簡要介紹一下系統(tǒng)中采用的TI公司的UART產(chǎn)品16C550C。

        TI公司生產(chǎn)的異步收發(fā)器(UART)TL16C550C是TL16C450的升級,它的主要功能與TL16C450完全相同,但是它片內(nèi)多了一塊16個字節(jié)的先進(jìn)先出(FIFO)存儲部件,用于緩解高速通信場合下CPU的繁忙程度。當(dāng)片內(nèi)的FIFO被激活時,最多允許在FIFO中存儲16個字節(jié)作為緩沖。為提高CPU讀數(shù)據(jù)的速度,該片支持DMA操作。

        16C550C在外設(shè)或MODEM接收到串行數(shù)據(jù)時能自動完成串并轉(zhuǎn)換并存儲,在收到CPU發(fā)來的數(shù)據(jù)時能自動完成并串轉(zhuǎn)換并發(fā)送。在UART工作過程中CPU能隨時查詢到UART此時的工作狀態(tài)。它最高可支持1Mbps的串行通訊速率[2]。

        RS-422接口通訊部分原理圖見圖2。

        差動發(fā)送器采用SN75174,差動接收器則采用SN75175。由于系統(tǒng)要求的通信速度很高,因此一般的光電隔離器件如TLP521系列不能滿足要求,而應(yīng)采用高速光耦。美國General Instrument公司生產(chǎn)的高速光電耦合器6N137,由磷砷化鎵發(fā)光二極管和單片光敏集成檢測電路組成。通過光敏二極管接收信號并經(jīng)內(nèi)部高增益放大器把信號放大后,由集電極開路門作為輸出。該器件隔離電壓高,速度快,共模抑制性強,完全能勝任高速通訊工作。

        另外,為提高系統(tǒng)的抗干擾性,除了采取高速光電隔離以外,對每一路高速通訊口均采用了一個電源隔離模塊,這樣即使在外部通訊受到強干擾甚至短路的情況下,也能保證計算機的絕對安全。

        激光測距雷達(dá)的數(shù)據(jù)由TL16C550C接收后,向80C196KD發(fā)出數(shù)據(jù)有效信號,由80C196KD來取走其緩沖區(qū)內(nèi)的數(shù)據(jù)。

        2.2 接口卡和PC機通信緩沖區(qū)的共享

        接口卡和PC機共享RAM的實現(xiàn)方式一般有以下三種方案:

        · 采用雙端口RAM,該方式速度高,應(yīng)用方便,適用于共享數(shù)據(jù)區(qū)兩側(cè)需要頻繁高速地交換數(shù)據(jù)的場合,但成本稍高;

        ·采用單口RAM,并附加以一定的控制邏輯以保證某一時刻RAM的總線只和一個宿主相連接,以避免發(fā)生總線沖突。這種方式適用于交換數(shù)據(jù)量較小,次數(shù)也不頻繁的場合,尤其是不能有RAM兩側(cè)的宿主同時要占用RAM的情況;

        ·采用兩片單口RAM做輪換郵箱,并附加以一定的控制邏輯。當(dāng)郵箱一側(cè)的宿主向第一片RAM寫入數(shù)據(jù)時,郵箱另一側(cè)的宿主可從第二片RAM中讀數(shù)據(jù);當(dāng)郵箱一側(cè)的宿主需要向第二片RAM寫入數(shù)據(jù)時,郵箱另一側(cè)的宿主可又從第一片RAM中讀數(shù)據(jù)。如此反復(fù)完成數(shù)據(jù)的交換過程,中間總線的切換由硬件控制邏輯來保證。這種方式克服了方案2不能有RAM兩側(cè)的宿主同時占用RAM的缺點,能實時地交換數(shù)據(jù),但控制邏輯較為復(fù)雜。

        在本接口卡中,由于RAM一方面要及時存放兩路激光雷達(dá)的數(shù)據(jù),一方面又要隨時準(zhǔn)備PC機來獲取數(shù)據(jù),完全有可能發(fā)生PC機在讀RAM中某一路激光雷達(dá)數(shù)據(jù)的同時板卡必須接收另一路激光雷達(dá)的數(shù)據(jù)的情況,故而方案2顯然不行。而方案3的控制邏輯相對復(fù)雜而且芯片多,占用面積大。所以第一方案是最佳選擇。我們采用IDT公司的IDT7134雙端口RAM作為系統(tǒng)的共享數(shù)據(jù)存儲區(qū),容量為4KB[3]。

        板卡與ISA總線的接口模塊采用ALTERA公司的現(xiàn)場可編程門陣列(FPGA)芯片EFP6016-144來實現(xiàn)。內(nèi)部邏輯的構(gòu)造采用ALTERA公司的硬件描述語言ADHL程序來實現(xiàn)。ADHL是一種模塊化的高級語言,它特別適合于描述復(fù)雜的組合邏輯、組運算和狀態(tài)機、真值表和參數(shù)化的邏輯[4]。

        參考PC機中IO端口使用情況可知,PC機中一般均為用戶板卡的使用留有端口,如2E0H~2EFH段和300H~30FH這一段均是用戶擴展板卡可使用的IO端口地址。故本通信卡中狀態(tài)寄存器使用2E2H,控制寄存器使用2E3H,2E0H作為共享RAM中的數(shù)據(jù)讀寫端口,2E1H作為數(shù)據(jù)讀寫時的地址預(yù)置端口。各端口指向的寄存器各位的意義如下:

        ·狀態(tài)讀取端口 (地址:2E2H)

        D0:L1-DATA,雷達(dá)1的數(shù)據(jù)有效;

        D1:L2-DATA,雷達(dá)2的數(shù)據(jù)有效;

        D2:196-BUSY,板卡CPU正忙;

        D3:恒為1

        D4:恒為1

        D5:L1-W-ACK,C196已收到PC機寫入的雷達(dá)1的數(shù)據(jù);

        D6:L2-W-ACK,C196已收到PC機寫入的雷達(dá)2的數(shù)據(jù);

        D7:恒為1。

        ·控制端口 (地址:2E3H)

        D0:L1-ACK,PC機對L1-DATA的應(yīng)答信號;

        D1:L2-ACK,PC機對L2-DATA的應(yīng)答信號;

        D2:L1-WR,PC機已對板卡寫入雷達(dá)1的控制信號;

        D3:L2-WR,PC機已對板卡寫入雷達(dá)2的控制信號;

        D4:WAKE-OUT,PC機給板卡CPU的喚醒信號;

        D5:恒為0;

        D6:PC-RESET,PC機對板卡的復(fù)位信號;

        D7:恒為0。

        ·地址預(yù)置端口 (地址:2E1H,)

        D7~D4:恒為0;

        D3~D0:為板卡RAM的12位地址總線中的高4位,板卡RAM的低八位地址初始值為00H。

        ·數(shù)據(jù)讀寫端口(地址:2E0H)

        PC機從該端口讀雷達(dá)數(shù)據(jù)或?qū)懤走_(dá)命令。

        2.3 接口卡資源分配及PC機命令

        板卡上4K的數(shù)據(jù)共享RAM的存儲區(qū)分配如下:

        0000H~09FFH:共2.5KB容量,為串口I的接收數(shù)據(jù)存儲區(qū);

        0A00H~0EFFH:共1.2KB容量,為串口II的接收數(shù)據(jù)存儲區(qū);

        0F00H~0F80H:共128B容量,為串口I的發(fā)送命令存儲區(qū);

        0F81H~0FFFH:共128B容量,為串口II的發(fā)送命令存儲區(qū)。

        板卡能接收并處理的命令有三種:

        命令存放地址 意 義
        命令區(qū)基地址
        命令區(qū)基地址+04H
        命令區(qū)基地址+08H
        外設(shè)初始化
        接收數(shù)據(jù)加窗處理
        接收數(shù)據(jù)平滑處理

        外設(shè)初始化命令格式如下:

        命令值(8bit) 外設(shè)類型(8bit)

        01H

        01H:雷達(dá)類型Ⅰ
        02H:雷達(dá)類型Ⅱ

        接收數(shù)據(jù)加窗處理命令如下:

        命令值(8bit) 起始角度 結(jié)束角度
        01H 8bit 8bit

        接收數(shù)據(jù)平滑處理命令如下:

        命令值(8bit)前后平滑幀數(shù)
        01H8bit

        所有命令都是01H有效,00H則無效。

        2.4 板卡與雷達(dá)的握手通信協(xié)議

        板卡與雷達(dá)的握手通信協(xié)議共分以下五個步驟:

        ·設(shè)定板卡自身的通訊波特率為9600;

        ·向雷達(dá)發(fā)送啟動安裝模式的命令,并等待雷達(dá)應(yīng)答數(shù)據(jù)返回。

        ·向雷達(dá)發(fā)送命令,設(shè)置雷達(dá)的通訊波特率為500Kbps;

        ·設(shè)置板卡自身的通訊速率為500Kbps;

        ·向雷達(dá)發(fā)送命令,設(shè)置其為“連續(xù)發(fā)送測試數(shù)據(jù)模式”,并等待雷達(dá)應(yīng)答數(shù)據(jù)返回。

        此后雷達(dá)便開始以一定的時間周期將測試數(shù)據(jù)以500Kbps的通訊速率發(fā)送至板卡。

        協(xié)議中具體的命令字節(jié)格式等跟雷達(dá)型號有關(guān),篇幅所限,在此不再說明。

        3 接口卡工作過程

        PC機上電后,板卡自動復(fù)位并通過“IDLPD #2”指令進(jìn)入掉電工作方式。當(dāng)激光雷達(dá)將要被初始化時,PC機通過將控制端口寄存器的D4位置1來“喚醒”板卡工作。然后向?qū)?yīng)串口命令區(qū)寫入雷達(dá)初始化命令,板卡將根據(jù)命令中雷達(dá)類型執(zhí)行相應(yīng)的初始化操作。初始化應(yīng)答過程如上所述。

        初始化成功后,板卡便開始接收數(shù)據(jù),接收完后依據(jù)校驗字對數(shù)據(jù)進(jìn)行CRC校驗。正確無誤則去掉應(yīng)答數(shù)據(jù)的頭和尾,只剩下總數(shù)據(jù)字節(jié)數(shù)(16bit)和數(shù)據(jù),并根據(jù)PC機的要求對雷達(dá)掃描數(shù)據(jù)進(jìn)行數(shù)據(jù)平滑或數(shù)據(jù)加窗處理。處理后的數(shù)據(jù)存放在雙口RAM的相應(yīng)存儲區(qū)中,然后通過將對應(yīng)的L-DATA信號置高告知PC機前來取數(shù)據(jù)。

        PC機通過查詢端口檢測到雷達(dá)數(shù)據(jù)有效后,即以對應(yīng)的L-ACK信號作為應(yīng)答。然后板卡和PC機分別撤消各自的信號。PC機可開始讀取對應(yīng)雷達(dá)的數(shù)據(jù)。當(dāng)PC機想從板卡共享RAM的某一地址開始讀寫數(shù)據(jù)時,先向2E1H端口寄存器寫入12位共享RAM地址的高4位,低八位使其自動為零。當(dāng)PC機讀寫完一個字節(jié)的數(shù)據(jù)時,通過FPGA構(gòu)造的片內(nèi)計數(shù)器,該EISA接口能自動將地址加一,指向RAM中的下一個字節(jié)單元。這樣,PC機在讀寫板卡RS-422接收的數(shù)據(jù)時,只需在讀寫之前設(shè)定一次地址,然后就可以連續(xù)不斷地從板卡中讀取成塊的數(shù)據(jù),從而大大提高了端口傳送數(shù)據(jù)的速度。

        同樣,當(dāng)PC機向板卡寫入命令時,除向?qū)?yīng)串口命令區(qū)寫入命令外,置位相應(yīng)的L-WR信號,以告知板卡。板卡即以對應(yīng)L-WRACK信號作為應(yīng)答。隨后PC機和板卡分別撤消各自的信號。板卡取出命令解釋并執(zhí)行相應(yīng)的操作。

        綜上所述,本文所設(shè)計的PC機與激光測距雷達(dá)高速串行通信接口卡具有如下特點:

        ·具有雙路高達(dá)500Kbps的高速RS-422數(shù)據(jù)通信接口,可靠性好,通信效率極高;

        ·采用FPGA和雙端口RAM做ISA總線接口及高速共享數(shù)據(jù)緩沖區(qū),只占用很少的PC機端口資源就實現(xiàn)了板卡和PC機高速的數(shù)據(jù)通信和共享;

        ·劃分了主PC機和板卡的任務(wù)范圍,擬訂了命令代碼,能做到主從CPU一定程度地高速并行處理;

        ·上層PC機的接口軟件設(shè)計簡單方便,只需在WINDOWS下開一個線程監(jiān)視板卡的狀態(tài)端口即可,避免了編寫設(shè)備驅(qū)動程序的煩瑣工作。

        該接口卡已成功地應(yīng)用在智能自主式移動機器人中主處理機和激光測距雷達(dá)的通信方面,取得了滿意的效果。



        評論


        相關(guān)推薦

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

        關(guān)閉