新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VxWorks的多串口卡通信實(shí)現(xiàn)

        基于VxWorks的多串口卡通信實(shí)現(xiàn)

        作者: 時(shí)間:2010-01-27 來(lái)源:網(wǎng)絡(luò) 收藏


        2.2 EMM8驅(qū)動(dòng)開(kāi)發(fā)

        首先是對(duì)各的初始化和中斷配置,初始化包括設(shè)置波特率以及數(shù)據(jù)格式。

        在實(shí)際的工程應(yīng)用中,需要8個(gè)共同使用一個(gè)中斷(中斷資源不足),8的全雙工同時(shí)收發(fā)。難點(diǎn)在于使用同一個(gè)中斷且不能丟數(shù)據(jù),對(duì)于驅(qū)動(dòng)使用同中斷問(wèn)題,關(guān)鍵是接收數(shù)據(jù)的中斷服務(wù)程序ISR。經(jīng)過(guò)探索,不論是否使用單中斷,讀EMM8卡上I/O Register Map表中的一個(gè)中斷狀態(tài)寄存器(interrupt status register),可以指出當(dāng)時(shí)是哪一個(gè)串口收到數(shù)據(jù),讀出該串口的數(shù)據(jù)即可。但是這種方法經(jīng)過(guò)測(cè)試在接收時(shí)丟數(shù)據(jù)。后經(jīng)研究發(fā)現(xiàn),中斷狀態(tài)寄存器并不一定在某一個(gè)時(shí)刻只有一個(gè)端口位發(fā)生跳轉(zhuǎn)。即CPU收到中斷后,有可能是幾個(gè)串口“同時(shí)”收到數(shù)據(jù),這是因?yàn)橹袛嗫刂破鲗⑼粋€(gè)CPU中斷分給了不同的串口。從CPU端看來(lái)只有一個(gè)中斷,但從各串口來(lái)講,這個(gè)中斷有可能是幾個(gè)串口“同時(shí)”產(chǎn)生的。因此要對(duì)中斷狀態(tài)寄存器進(jìn)行輪詢(xún),由發(fā)生跳轉(zhuǎn)的串口位接收該串口的數(shù)據(jù)。修改后,經(jīng)過(guò)編寫(xiě)用例測(cè)試,可以穩(wěn)定地使用單中斷接收數(shù)據(jù)且不影響數(shù)據(jù)的發(fā)送。


        2.3 驅(qū)動(dòng)測(cè)試

        首先是各串口的功能測(cè)試,使用“串口調(diào)試助手”軟件工具通過(guò)PC機(jī)與各目標(biāo)機(jī)串口,收發(fā)數(shù)據(jù),然后通過(guò)屏幕顯示得到的數(shù)據(jù),對(duì)比規(guī)定的預(yù)期結(jié)果,檢測(cè)數(shù)據(jù)收發(fā)是否正確。經(jīng)多次驗(yàn)證,工作穩(wěn)定,正確。

        綜合測(cè)試:使用2臺(tái)PC104分別安裝STV2050CPU模塊和EMM8多串口模塊各1塊,2臺(tái)PC通過(guò)網(wǎng)口(交換機(jī))連接2臺(tái)PC104,2個(gè)EMM8通過(guò)8根RS-232雙頭串口線(xiàn)連接。2臺(tái)PC通過(guò)網(wǎng)口使用tornado的shell工具下載啟動(dòng)程序。2臺(tái)PC104分別稱(chēng)為1主機(jī)和2主機(jī)。測(cè)試方法是:

        1主機(jī)同時(shí)發(fā)送8串口的數(shù)據(jù),2主機(jī)8串口接收并轉(zhuǎn)發(fā)回1主機(jī)。1主機(jī)接收返回的數(shù)據(jù),判斷是否錯(cuò)誤。經(jīng)檢驗(yàn)正確通信300000次無(wú)錯(cuò),多次驗(yàn)證。完成對(duì)EMM8多串口通訊模塊全雙工收發(fā)的測(cè)試。

        經(jīng)過(guò)以上測(cè)試,表明本文所述的多串口卡通信方法有效,所開(kāi)發(fā)模塊穩(wěn)定可靠。


        3、結(jié)束語(yǔ)

        本文介紹了嵌入式系統(tǒng)中的多串口卡通信的實(shí)現(xiàn)過(guò)程,因篇幅有限,不能列出詳盡代碼。本文以EMM8為例,采用驅(qū)動(dòng)直接訪問(wèn)硬件的方法,較為

        簡(jiǎn)潔、高效地解決了單中斷多串口全雙工通信的問(wèn)題,滿(mǎn)足了項(xiàng)目需求,并經(jīng)過(guò)了測(cè)試和驗(yàn)收。為日后類(lèi)似問(wèn)題的解決提供了一些參考和經(jīng)驗(yàn)。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 义乌市| 松潘县| 德兴市| 永州市| 萨迦县| 读书| 文昌市| 琼海市| 建平县| 思茅市| 长顺县| 阜新| 崇明县| 微山县| 衡阳县| 广饶县| 徐闻县| 沂源县| 宣武区| 体育| 兴文县| 肇州县| 蛟河市| 丽江市| 壤塘县| 大冶市| 彭阳县| 德化县| 京山县| 昌吉市| 双峰县| 清水县| 抚远县| 松滋市| 延安市| 永善县| 天峻县| 延庆县| 友谊县| 洛阳市| 蚌埠市|