智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

基于PCI總線模塊的多通道串行數(shù)據(jù)采集系統(tǒng)設(shè)計

來源:網(wǎng)絡(luò)

點擊:1278

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: PCI,數(shù)據(jù)采集,多通道

      0 引言

      目前市面上有多種數(shù)據(jù)采集卡,但其應(yīng)用都具有一定的局限性,不可能完全滿足用戶的需求。本文介紹的數(shù)據(jù)采集卡可應(yīng)用于某視頻圖像采集系統(tǒng)中,數(shù)據(jù)源發(fā)送多路同步串行數(shù)據(jù),然后經(jīng)過數(shù)據(jù)采集卡傳入上位機用以進(jìn)行后續(xù)分析。上位機向外寫控制字并轉(zhuǎn)換后以異步串行方式輸出。用以控制視頻圖像的采集。本系統(tǒng)將 PCI接口邏輯和其他用戶邏輯集成于一片F(xiàn)PGA中,因而大大節(jié)省了資源,便于進(jìn)行串口擴展及其他功能的添加,性能良好,用途廣泛。

      1 PCI總線

      PCI總線是一種高性能的局部總線,具有32位可升級到64位的、獨立于CPU的總線結(jié)構(gòu)。工作頻率為33/66 MHz,最高傳送速度可達(dá)132 MB/s(32位、33 MHz)或528 MB/s(64位、66 MHz)。

      PCI總線定義了Memory(存儲器)空間、I/O(輸入/輸出)空間和配置空間3種地址空間,并具有兩種工作模式:其中主模式下的PCI設(shè)備具有總線控制權(quán),可以實現(xiàn)DMA傳輸;而被主設(shè)備控制進(jìn)行通信的稱為從模式(TARGET)。

      1.1 PCI總線的配置空間

      所有的PCI設(shè)備都必須實現(xiàn)配置空間,該空間分為首部區(qū)和設(shè)備有關(guān)區(qū)。首部區(qū)中的強制性寄存器有:供應(yīng)商代碼(Vendor ID)寄存器用于標(biāo)明設(shè)備制造商),設(shè)備代碼(Device ID)寄存器(用于指明特定的設(shè)備,它由供應(yīng)商分配),版本識別(Revision ID)寄存器,首部類型(He-ader Type)寄存器和類別寄存器(Class Code)。以上五個寄存器均可用于PCI總線上設(shè)備的識別。另外,首部區(qū)中還有兩種必須實現(xiàn)的寄存器:其中命令寄存器用于存放PCI命令,而設(shè)備狀態(tài)寄存器則用于記錄PCI的狀態(tài)信息。

      操作系統(tǒng)在啟動時應(yīng)判斷系統(tǒng)中有多少存儲器、以及I/O設(shè)備需要多少地址空間,然后建立統(tǒng)一的地址映射關(guān)系,這時的PCI設(shè)備需要用到基地址寄存器。另外,若要實現(xiàn)中斷,還必須設(shè)置中斷引腳(Interrupt Pin)寄存器和中斷線(Interrupt Line)寄存器。

      1.2 PCI總線的中斷機制

      PCI總線的硬件中斷方式分為邊沿觸發(fā)和電平觸發(fā),PCI設(shè)備為低電平觸發(fā)(level-sensiTIve)。PCI總線上有4條中斷請求信號線:INTA #、INTB#、INTC#、INTD#,中斷引腳寄存器的值01H~04H分別對應(yīng)4條中斷線,單功能PCI設(shè)備只能使用INTA#。此外,使用了中斷引腳的設(shè)備還必須實現(xiàn)中斷線寄存器。POST例程(加電自檢測程序)在進(jìn)行系統(tǒng)初始化和配置時還要將中斷線信息寫入該寄存器。PCI總線中斷是可以共享的,這一方面解決了中斷資源緊張的問題,但另一方面也會給PCI中斷的實現(xiàn)帶來麻煩。

      2 系統(tǒng)硬件實現(xiàn)

      2.1 PCI配置寄存器的設(shè)置

      Altera公司的PCI編譯器(PCI Compiler)提供有使用Altera器件實現(xiàn)PCI接口設(shè)計的完全解決方案。其中包括4種PCI接口兆核函數(shù)(PCI IP)及相關(guān)測試平臺。

      通過PCI編譯器的IP工具臺或直接編輯生成的兆核函數(shù)頭文件可以設(shè)置并修改PCI的配置空間信息,本系統(tǒng)的主要配置信息如下:

      2.2 PCI T32兆核函數(shù)的內(nèi)部結(jié)構(gòu)及外圍信號

      PCI Compiler提供的四種PCI IP包括PCI_M64/32、64/32位的主模式接口和PCI_T64/32、64/32位的從模式接口。本系統(tǒng)通過PCI接口與PC機傳輸32位數(shù)據(jù),并由上位機應(yīng)用程序控制系統(tǒng)工作。故該系統(tǒng)工作于32位從模式,即本系統(tǒng)的PCI接口使用PCI_T32模塊來實現(xiàn)。

      參數(shù)配置寄存器(Parameterizde Configuration Registers)是符合PCI規(guī)范的所有配置的寄存器,可用于識別設(shè)備、控制PCI總線功能、提供PCI總線狀態(tài)等,PCI側(cè)從模式控制模塊(PCI Target Control)用于控制PCI_T32與PCI總線的各種操作,而用戶側(cè)從模式控制模塊(Local Target Control)則用于控制PCI_T32與用戶邏輯的各種操作。

      PCI_T32上PCI總線一側(cè)的信號是符合PCI協(xié)議的標(biāo)準(zhǔn)信號,該信號Local側(cè)的信號為Altera PCI IP特有的與用戶邏輯接口的信號,起著關(guān)鍵作用。其中:

      l_ADI[31:0]為地址/數(shù)據(jù)輸入信號;

      l_dato[31:0]為數(shù)據(jù)輸出信號;

      l_adro [31:0]為地址輸出信號,讀操作時,可將PCI側(cè)地址/數(shù)據(jù)信號AD[31:0]上的第一個有效周期(即地址期)的數(shù)據(jù)輸出;

      l_emdo[3:0]為命令輸出信號,其位定義及時序符合PCI規(guī)范,其為0010時為I/O讀操作,為0011時為I/O寫操作、為0110時為內(nèi)存讀操作。為0111時為內(nèi)存寫操作,為1010時為配置空間讀,為1011時為配置空間寫,用戶對這組信號進(jìn)行譯碼可知其當(dāng)前PCI總線上設(shè)備的操作情況;

      l_irqn為用戶中斷請求信號,由于PCI總線為低電平中斷,所以,用戶邏輯若要發(fā)出PCI中斷請求,就必須將低脈沖送入l_irqn。實驗證明,低脈沖持續(xù)時間須在4~8μs之間,持續(xù)時間過短會出現(xiàn)丟失中斷現(xiàn)象,而時間過長時,操作系統(tǒng)又會重復(fù)響應(yīng)同一個中斷請求;

      l_tsr[11:0]可用于控制local目標(biāo)設(shè)備狀態(tài)寄存器,其中D0~D5位分別對應(yīng)BAR0~BAR5,哪位有效代表哪個BAR被選中;

      l_dxfrn為輸出信號,表示local目標(biāo)設(shè)備數(shù)據(jù)傳輸成功。

      2.3 FAGA邏輯設(shè)計

      一個數(shù)據(jù)采集系統(tǒng)若要穩(wěn)定可靠地采集數(shù)據(jù),都需要設(shè)置合適的數(shù)據(jù)緩沖區(qū),本系統(tǒng)的數(shù)據(jù)緩沖區(qū)由FPGA內(nèi)部IP核實現(xiàn)。

      同步串行通信對時鐘的同步要求非常嚴(yán)格,設(shè)計時應(yīng)該注意收/發(fā)兩方必須使用同一時鐘來控制數(shù)據(jù)的傳輸。另外,PCI_T32內(nèi)存讀寫分為單周期模式和突發(fā)模式。突發(fā)模式即在給出首地址后主設(shè)備連續(xù)讀寫多個數(shù)據(jù),這在FPGA中需要用戶端地址每周期自動增1的操作。

      3 系統(tǒng)軟件開發(fā)

      3.1 驅(qū)動程序

      PCI設(shè)備的硬件資源由Windows操作系統(tǒng)根據(jù)PC機中所有設(shè)備對資源的占有來統(tǒng)一分配。為了保證系統(tǒng)的安全和穩(wěn)定性,在Windows2000及其后的微軟操作系統(tǒng)中,運行在ring3層的用戶應(yīng)用程序無法直接訪問硬件,而必須通過運行于ring0層的設(shè)備驅(qū)動程序來訪問。設(shè)備驅(qū)動不僅要實現(xiàn)對硬件的操作,還要為用戶應(yīng)用程序提供專用的API函數(shù)庫,以方便用戶實現(xiàn)對硬件的操作訪問。

      Windows XP操作系統(tǒng)下的驅(qū)動程序一般是基于WDM(Windows Driver Model)模型開發(fā)的。該模型中的上層應(yīng)用程序通過調(diào)用Win32 API函數(shù)發(fā)出對設(shè)備的訪問請求,I/O管理器則根據(jù)這個請求構(gòu)造合適的IRP(I/O Request Packet,I/O請求包),并將其傳給設(shè)備驅(qū)動程序,接著由驅(qū)動程序直接訪問硬件完成IRP處理,最后由I/O管理器把數(shù)據(jù)和結(jié)構(gòu)返回給應(yīng)用程序。

      WDM驅(qū)動比較常用的有以下三種方法:

      第一種是直接使用Windows DDK(Device Driver Kit,驅(qū)動程序開發(fā)包)開發(fā)的驅(qū)動程序面向Windows內(nèi)核,該方法工作穩(wěn)定,效率更高。但必須精通Windows內(nèi)部體系結(jié)構(gòu)及設(shè)備驅(qū)動程序的體系結(jié)構(gòu)等,因此開發(fā)難度較大。

      第二種是使用DriverStudio。此工具軟件已經(jīng)做了很多基礎(chǔ)性工作,也進(jìn)行了一些封裝。

      第三種是使用WinDriver,使用該方法時,開發(fā)者只需要在用戶模式下編寫程序來調(diào)用它提供的通用驅(qū)動即可。其中Drvier Wizard可以進(jìn)行硬件診斷和自動代碼生成。另外還可以將對速度要求較高的模塊插入內(nèi)核運行來獲取更好的性能。本系統(tǒng)即采用WinDriver開發(fā)方法。

      3.2 WinDriver中的重要函數(shù)

      利用WinDriver開發(fā)驅(qū)動程序通常有兩種方法:第一種是利用Driver Wizard生成的代碼進(jìn)行修改;第二種是直接利用WinDriver提供的API函數(shù)來編寫自己的程序。本系統(tǒng)即采用這種方法,開發(fā)時首先要注意包含所有相關(guān)的頭文件。

      3.3 中斷實現(xiàn)

      PCI總線的通信方式有查詢和中斷兩種方式。查詢方式實現(xiàn)簡單,但是難以適應(yīng)實時性要求較高的場合,而且上位機軟件資源占用率過大;中斷方式則可克服以上缺點,可以實現(xiàn)數(shù)據(jù)的實時傳輸。本系統(tǒng)將數(shù)據(jù)經(jīng)過處理后存入RAM,存滿一幀數(shù)據(jù),硬件便發(fā)出中斷請求信號,上位機響應(yīng)中斷請求后,即可讀取一幀數(shù)據(jù)。

      要實現(xiàn)中斷機制,就要建立一個獨立的中斷響應(yīng)線程,并在主函數(shù)中完成中斷的使能、屏蔽及中斷線程的啟動。另外,使用WinDriver處理電平中斷時,還必須建立傳輸命令(INTCSR)來應(yīng)答中斷。

      其中斷處理過程分為四步:

      第一步,調(diào)用WDC_IntEnable(),此函數(shù)的功能是分配并初始化WC_INTERRUPT結(jié)構(gòu)體,自動創(chuàng)建中斷處理線程,同時在其中包含 WD_Int-Wait()函數(shù),作用是使線程休眠直至有中斷發(fā)生。另外,還可以調(diào)用底層API函數(shù)InterruptEnable()或 WD_Enable(),但此時需要由用戶自己創(chuàng)建中斷線程;

      第二步是中斷線程無限循環(huán)以等待中斷發(fā)生。中斷發(fā)生時,WinDriver在內(nèi)核中執(zhí)行傳輸命令,當(dāng)操作返回到用戶模式時,驅(qū)動的用戶模式中斷處理例程將被調(diào)用;之后,中斷處理例程返回,但中斷等待循環(huán)繼續(xù);最后在不再使用中斷時,調(diào)用’WDC_IntDisable()、底層API函數(shù)Inter- mptDisable()或WD_IntDisable()來關(guān)閉中斷。

      3.4 驅(qū)動的分發(fā)及安裝

      驅(qū)動的分發(fā)是指在目標(biāo)機上不用安裝WinDriver開發(fā)包即可應(yīng)用其開發(fā)的設(shè)備驅(qū)動。需要準(zhǔn)備的分發(fā)包應(yīng)包括 windrvr6.sys、windrvr-6.inf、wd921.cat、waapi921.dll、difxapi.dll、自己的 INF(InformaTIon File)等文件,而且即使是自己開發(fā)內(nèi)核驅(qū)動。也應(yīng)包含在內(nèi)。

      Windows操作系統(tǒng)依靠INF文件來得到即插即用設(shè)備的驅(qū)動程序信息。WinDriver會自動檢測PC機上的即插即用設(shè)備。并為相應(yīng)硬件生成I- NF文件,而且只需稍作修改即可。INF文件可引導(dǎo)系統(tǒng)找到硬件所需要的驅(qū)動程序,由WinDriver生成的INF文件中列出了默認(rèn)的拷貝文件win- drvr6.sys。設(shè)備驅(qū)動可通過工作于內(nèi)核模式的windrvr6.sys訪問硬件。之后在目標(biāo)機上裝入驅(qū)動分發(fā)包及INF文件,即可通過應(yīng)用程序控制PCI設(shè)備。

      4 結(jié)束語

      該數(shù)據(jù)傳輸系統(tǒng)的PCI接口邏輯和數(shù)據(jù)傳輸、處理、緩存等用戶邏輯可集成于一片F(xiàn)PGA中。因而可極大的提高資源利用率,并可滿足大量數(shù)據(jù)高速傳輸?shù)囊蟆I衔粰C應(yīng)用程序采用中斷方式讀取數(shù)據(jù)可大大提高系統(tǒng)的性能。目前,經(jīng)多次試驗,該系統(tǒng)已完全可以滿足工程需要。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請聯(lián)系我們刪除。

    主站蜘蛛池模板: 曙海培训-仿真培训Linux培训html5培单片机培训PCB培训python培训PLC培训C语言培训android培训物联网培训无线电培训欧姆龙培训工业机器人培训5G培训Hadoop培训CFD培训项目外包开发咨询 | 声测管厂家_注浆管现货_桩基声测管_河北沧州新迈实业有限公司 | 压滤机_板框压滤机_生产厂家陕西华星佳洋装备制造有限公司 | 轮转印刷机_商标印唛机_超声波切唛机_瑞安市明辉机械有限公司 | 碳化硅微粉_超细碳化硅微粉_潍坊凯华碳化硅微粉有限公司 | 重庆吊篮租赁-重庆脚手架租赁-重庆斌盛机械设备租赁有限公司 | 万向轴承_福来轮_全向轮_双向转轮_万向球_算盘轮_塑料卷轴-宁津县正彤机械塑料有限公司 | 联想南京总代理-联想服务器|联想电脑笔记本代理商|联想工作站|dell服务器|HP服务器|南京IBM代理商|IBM V5000存储总包销-南京宇宽科技有限公司 | 长焦监控摄像机-热成像夜视仪-激光云台-深圳红阳信息科技有限公司 | 履带底盘-橡胶履带底盘-无线遥控底盘-德州力维智能装备有限公司 铝压铸件_铝合金压铸件_铝合金压铸件厂家-安平县长虹压铸厂 | 上海前 傲信息技术有限公司-企业信息化建设及品牌推广服务商 | 荣事达电动洗地机_全自动工业洗地车_扫地机_清洁设备工厂 | 真空泵维修保养-真空泵-真空泵油-真空泵过滤器-真空泵碳片-东莞市海扬真空设备有限公司 | 山东向阳电子科技有限公司-多用户集中式电能表生产厂家,NB物联网水表,刷卡水电表生产厂家,泰安智能水电表价格 | 银联POS机_银联微信支付宝刷卡POS机_外币POS机_移动POS机办理安装——谷骐科技 | 空气能热水器|空气能热水器工程|太阳能热水器工程|蓝冠机电 | 长沙考研-长沙考研辅导学校-长沙领航教育科技有限公司 | 宿迁市华泰交通设施有限公司,上海第四代路名牌,天津仿罗马柱路名牌,标准路名牌,路名牌灯箱,公交站台,户外广告灯箱, 交通标志牌,社区阅报栏 | 真空工业炉-真空油淬炉-真空气淬炉-高温石墨化炉-江苏华弘真空科技有限公司 | 实验反应釜,高压反应釜,玻璃反应釜,不锈钢反应釜-烟台招远松岭化工设备有限公司 | 江门市金环电器有限公司 | 重庆化粪池清淘_管道疏通_高压疏通清洗管道_电话:023-68183336,15723234763 | 真空上料机_加料机_天津自动上料机_投料站_包装机加料_吸料机_粉体称重-天津市飞云粉体设备有限公司 | 螺杆式空压机|沈阳螺杆空压机厂家推荐选择沈阳隆瑚机械有限公司 螺带混合机|卧式螺带混合机|双动力混合机-无锡鑫海干燥粉体设备有限公司 | 温湿度记录仪_温度监控_冷链监控云平台_USB/PDF温度记录仪-深圳市鸿睿物联科技发展有限公司 | 土工膜_土工布_复合土工膜_山东土工膜生产厂家_山东路易达新材料有限公司 | 江苏中美铝业有限公司-【官网】| 阻垢剂|缓蚀剂|杀菌剂|分散剂|水处理剂|印染助剂|水处理药剂|造纸助剂|膜阻垢剂|缓蚀剂|HEDP|ATMP|螯合剂-山东凯瑞化学有限公司 水处理药剂生产厂家 | 曙海培训-仿真培训Linux培训html5培单片机培训PCB培训python培训PLC培训C语言培训android培训物联网培训无线电培训欧姆龙培训工业机器人培训5G培训Hadoop培训CFD培训项目外包开发咨询 | 智能照明模块,智能动力控制器,巨川电气-智能电气领航 | 深圳办公室装修_设计_实景_效果图_哪家好-公装装饰公司 | 深圳沃亚游学官网丨国外游学丨国际夏冬令营丨美国游学线路丨出国短期游学丨亲子海外游丨游学咨询: 0755-83843308 | 模型公司|沙盘公司|优选杭州景文模型设计有限公司| 吉安仁济医院「官网」吉安男科医院-吉安仁济男科医院靠谱吗-男性专科医院 | 葫芦岛市鹏翔农药化工科技有限公司-苦参碱可溶液剂-氯氰菊酯乳油-阿维菌素乳油 | 上海外资代理记账|上海软银财务咨询有限公司 | 天津印刷_天津印刷厂_天津印刷公司_天津包装盒厂家_天津包装盒印刷厂_七层共挤膜厂家_彩色印刷_画册印刷_礼品盒定做 _七层共挤膜_食品真空袋-欢迎访问嘉联包装官网! | 上海画册设计-上海宣传册设计-产品手册设计-企业画册设计公司 | 天津市友联机电设备有限公司| -盐城市精工阀门有限公司 | 商标注册查询_商标注册代理公司_专利申请_版权登记-源智知识产权 |