新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的PCI總線串口卡設計

基于FPGA的PCI總線串口卡設計

作者: 時間:2010-10-18 來源:網(wǎng)絡 收藏

 接收模塊通過狀態(tài)機來完成數(shù)據(jù)接收,其狀態(tài)機包含4個狀態(tài):空閑狀態(tài)(idle)、移位狀態(tài)(shift)、奇偶校驗狀態(tài)(parity)和停止位狀態(tài)(stop),如圖6所示。其工作過程如下:當系統(tǒng)復位時,狀態(tài)機進入空閑狀態(tài),等待接收開始位;當開始位被確定有效后,狀態(tài)機進入移位狀態(tài)。在移位狀態(tài)中,接收模塊為每個數(shù)據(jù)位的移入等待16個內(nèi)部時鐘周期,接收完特定的數(shù)據(jù)位后,若奇偶校驗使能有效,則跳轉(zhuǎn)到奇偶校驗狀態(tài);否則,進入停止位狀態(tài),而后進入空閑狀態(tài),重復上述過程。

本文引用地址:http://butianyuan.cn/article/191527.htm


1.2.4 發(fā)送模塊
 發(fā)送模塊包括發(fā)送緩存寄存器和發(fā)送移位寄存器。在發(fā)送數(shù)據(jù)開始時,清空發(fā)送緩存寄存器和發(fā)送移位寄存器后,發(fā)送緩存寄存器接收發(fā)送來的數(shù)據(jù),然后從發(fā)送緩存寄存器向發(fā)送移位寄存器發(fā)送數(shù)據(jù)。首先發(fā)送起始位到發(fā)送移位寄存器,同時啟動發(fā)送數(shù)據(jù)計數(shù)器,記錄發(fā)送數(shù)據(jù)的個數(shù),直到發(fā)送移位寄存器接收到滿足需求的數(shù)據(jù)。若奇偶校驗使能有效,則跳轉(zhuǎn)到奇偶校驗狀態(tài);否則,進入停止位狀態(tài),完成1幀數(shù)據(jù)的發(fā)送。只要發(fā)送緩存寄存器不為空,則繼續(xù)傳輸下一幀數(shù)據(jù)。其狀態(tài)機的實現(xiàn)與接收模塊的類似。
2 系統(tǒng)軟件設計
2.1 驅(qū)動程序

 WinDriver是一套驅(qū)動程序開發(fā)包。它改變了傳統(tǒng)驅(qū)動程序開發(fā)的方法與思路,極大地簡化了驅(qū)動程序的編制。同時,WinDriver又沒有犧牲驅(qū)動程序的性能,是一套高效、快捷的驅(qū)動程序開發(fā)軟件包[4]。WinDriver可在VC/C++、Delphi、BC++、VB等多種開發(fā)環(huán)境中使用,本設計選用VC++作為驅(qū)動程序的開發(fā)環(huán)境,通過WinDriver生成VC++代碼,根據(jù)設計的需要修改生成的代碼以完成此設備的驅(qū)動。驅(qū)動程序流程圖如圖7所示。

2.2 應用程序
 應用程序負責調(diào)用、連接驅(qū)動程序,實現(xiàn)與驅(qū)動程序的通信。連接到驅(qū)動程序后,向驅(qū)動程序注冊,同時啟動監(jiān)測工作線程,等待事件發(fā)生。當驅(qū)動程序接收到中斷后,通過發(fā)送消息通知應用程序,處理發(fā)生的事件。處理后退出應用程序,結(jié)束等待事件線程。應用程序流程圖如圖8所示。
 本文介紹了一種基于的PCI卡設計方法,簡單說明了其硬件的設計和驅(qū)動程序、應用程序的編寫方法。該設計符合通用的PCI規(guī)范,支持即插即用功能,傳輸速率高,抗干擾能力強??梢詮V泛應用于各類測試設備、工廠自動化等,具有很高的實用價值。
參考文獻
[1] 徐志春.基于PCI的多通信適配卡設計[J].微計算機信息,2007,23:294-296.
[2] 王友波,劉明業(yè).PCI接口控制器的設計[J].北京理工大學學報,2004,24(5): 423-426.
[3] 楊大柱.基于的UART電路設計與仿真[J]. 微計 算機信息, 2007,23(5-2):212-213.
[4] 劉映杰,張在峰,劉瑋,等.用WinDriver開發(fā)PCI設備驅(qū)動程序[J]. 信息技術,2004, 28 (2):78-80.


上一頁 1 2 3 下一頁

關鍵詞: FPGA PCI 總線 串口

評論


相關推薦

技術專區(qū)

關閉