新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VxWorks平臺的多串口卡通信設計

        基于VxWorks平臺的多串口卡通信設計

        作者: 時間:2011-12-04 來源:網絡 收藏
        2.2 EMM8驅動開發

        本文引用地址:http://www.104case.com/article/150011.htm

        首先是對各的初始化和中斷配置,初始化包括設置波特率以及數據格式。

        在實際的工程應用中,需要8個共同使用一個中斷(中斷資源不足),實現8的全雙工同時收發。難點在于使用同一個中斷且不能丟數據,對于驅動使用同中斷問題,關鍵是接收數據的中斷服務程序ISR。經過探索,不論是否使用單中斷,讀EMM8卡上I/O Register Map表中的一個中斷狀態寄存器(interrupt status register),可以指出當時是哪一個串口收到數據,讀出該串口的數據即可。但是這種實現方法經過測試在接收時丟數據。后經研究發現,中斷狀態寄存器并不一定在某一個時刻只有一個端口位發生跳轉。即CPU收到中斷后,有可能是幾個串口“同時”收到數據,這是因為中斷控制器將同一個CPU中斷分給了不同的串口。從CPU端看來只有一個中斷,但從各串口來講,這個中斷有可能是幾個串口“同時”產生的。因此要對中斷狀態寄存器進行輪詢,由發生跳轉的串口位接收該串口的數據。修改后,經過編寫用例測試,可以穩定地使用單中斷接收數據且不影響數據的發送。


        2.3 驅動測試

        首先是各串口的功能測試,使用“串口調試助手”軟件工具通過PC機與各目標機串口,收發數據,然后通過屏幕顯示得到的數據,對比規定的預期結果,檢測數據收發是否正確。經多次驗證,工作穩定,正確。

        綜合測試:使用2臺PC104分別安裝STV2050CPU模塊和EMM8多串口模塊各1塊,2臺PC通過網口(交換機)連接2臺PC104,2個EMM8通過8根RS-232雙頭串口線連接。2臺PC通過網口使用tornado的shell工具下載啟動程序。2臺PC104分別稱為1主機和2主機。測試方法是:

        1主機同時發送8串口的數據,2主機8串口接收并轉發回1主機。1主機接收返回的數據,判斷是否錯誤。經檢驗正確通信300000次無錯,多次驗證。完成對EMM8多串口通訊模塊全雙工收發的測試。

        經過以上測試,表明本文所述的多串口卡通信實現方法有效,所開發模塊穩定可靠。


        3、結束語

        本文介紹了嵌入式系統中的多串口卡通信的實現過程,因篇幅有限,不能列出詳盡代碼。本文以EMM8為例,采用驅動直接訪問硬件的方法,較為

        簡潔、高效地解決了單中斷多串口全雙工通信的問題,滿足了項目需求,并經過了測試和驗收。為日后類似問題的解決提供了一些參考和經驗。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 弋阳县| 铁岭县| 两当县| 灌云县| 山丹县| 罗山县| 略阳县| 安国市| 上虞市| 五指山市| 板桥市| 潞城市| 哈尔滨市| 婺源县| 涡阳县| 诸暨市| 林甸县| 承德市| 海盐县| 龙井市| 吉安县| 安远县| 托克托县| 富川| 沾益县| 瑞昌市| 时尚| 邵阳县| 大丰市| 琼结县| 泰和县| 拉萨市| 江山市| 浪卡子县| 黑龙江省| 阳西县| 达日县| 综艺| 南通市| 丰城市| 武宣县|