《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于PCI總線的測控卡的設計

基于PCI總線的測控卡的設計

2008-10-20
作者:張 德 馬淑芬 吳嗣亮

  摘 要: 介紹了一種基于PCI總線的測控板卡的設計,使用PCI9054實現總線控制,利用FPGA實現測控板卡的發送邏輯、接收邏輯和數據緩沖功能,并采用了乒乓FIFO;最后給出了用WinDriver編寫設備驅動程序的方法。
  關鍵詞: PCI9054 FPGA 狀態機 乒乓FIFO WinDriver


  PCI總線是一種高性能的局部總線,它具有32/64位總線寬度,且總線地址和數據復用,支持猝發傳輸,傳輸速率高達132MB/s;同時可支持多組外圍設備。另外,PCI總線不依賴于熱和CPU,具有較好的兼容性。
  近幾年來,現場可編程門陣列(FPGA)在現代電子設計中的成功應用,使充分利用FPGA的本身資源設計專用電路,完成系統功能成為可能,從而簡化了電路、縮小了體積、提高了穩定性、具有更大的靈活性。
  基于這種設計思想,筆者利用FPGA和PCI總線接口芯片設計了一種測控電路板卡,經實際運行,效果很好。
1 系統結構與功能
  本板卡為基于PCI總線,采用RS485電平傳輸的異步串行通信測控卡。它與PCI總線的協議部分采用PCI9054專用接口芯片來完成。PCI9054是由美國PLX公司生產的一款高性能PCI I/O加速器,它采用了先進的32位數據管道結構技術,支持復用/非復用的32位數據/地址總線,本地總線有三種模式可選:M、C、J模式,被廣泛應用于PCI總線板卡的開發中。在本設計中,PCI9054工作在C模式下,采用中斷方式,總線周期為 “PCI目標讀單周期" title="單周期">單周期”和“PCI目標寫單周期”,數據總線為8位。
  異步串行通信電路部分完全用FPGA來實現。在設計上,筆者選用了Xilinx公司的SpartanⅡ系列的XC2S200來實現異步串行通信的接收、發送和接口控制功能,FPGA具有在線可編程能力,設計者可根據實際需求分配資源。
  測控卡的通信協議為起止式協議,采用固定的幀格式:1位開始位、8位數據位、1位停止位,無奇偶校驗位,在軟件中采用統一的CRC校驗,傳輸波特率為19.2kbps。為保證接收數據" title="接收數據">接收數據的正確性,設計中采用16倍頻波特率作為接收采樣時鐘,并把第八個采樣值作為接收數據。
  測控卡主要完成以下工作:采用RS485差分電平傳輸的遙測數據經過電平轉換后,由接收模塊" title="接收模塊">接收模塊接收后乒乓緩存到FIFO中,并通過PCI總線接口芯片PCI9054以單周期方式送到計算機內存中以便進行下一步處理。發送模塊" title="發送模塊">發送模塊接收到PCI總線傳輸過來的遙控命令后,按照通信協議格式組幀,在通過電平轉換芯片轉換成RS485電平后,以19.2kHz的頻率發送給目標設備,實現對目標設備的各種控制。
  根據以上分析,筆者設計的測控卡的具體功能結構如圖1所示。下面詳細闡述各部分的功能。


  ·MAX3490E:完成RS485差分電平到TTL電平的轉換;
  ·接收模塊:完成遙測數據的接收和緩沖;
  ·發送模塊:完成遙控數據的緩沖和發送;
  ·接口模塊:實現與PCI9054的接口功能,完成讀寫和傳輸控制操作;
  ·PCI9054:完成和PCI 總線的接口協議。
1.1 發送模塊設計
  發送模塊主要實現對遙控數據的緩存和并/串轉換,同時按照設計的異步串行通信數據幀格式進行相應的處理,最后將數據串行發送。處理器讀取線路狀態寄存器信息,檢查發送FIFO(TxFifo)是否為空,如為空且有遙控數據待發,則將遙控數據通過PCI9054發送并存儲到發送FIFO中。發送狀態機讀取TxFifo中數據,通過并/串移位后用19.2kbps的波特率串行輸出。發送狀態機實現起止位“0”、并/串移位信號、停止位“1”的發送,具體如圖2 所示。


  開始:當移位寄存器" title="移位寄存器">移位寄存器空,發送模塊處于等待開始狀態,一旦檢測到非空,發送起始位“0”,狀態機進入移位狀態;
  移位:通過并/串移位寄存器串行發出,當完成8bit 移位后,狀態機轉入停止狀態;
  停止:在這個狀態,為發送的數據加上一位停止位,然后轉入開始狀態,等待下一個數據。
  發送模塊包含8位并/串移位寄存器TSR、51×8 bits發送FIFO(TxFifo)、用于實現發送遙控數據計數的52計數器等。發送模塊內部電路結構如圖3所示。


1.2 接收模塊設計
  接收模塊實現遙測數據的串/并轉換,同時完成起始位、停止位的識別捕獲及遙測數據的緩存。由于本設計中由設備每100ms定時發送一幀(181字節)接收數據,當FIFO產生滿標志時,將耗時(181×(8+2)/19200)ms,即約95ms,僅剩5ms左右的時間讓PC機響應,由于操作系統的特點,不能充分滿足PC機的響應時間,這會造成接收數據混亂。為保證PC機所需的響應時間和數據的正確性和實時性,筆者使用了兩個滿標志為181的接收FIFO進行乒乓切換,收到良好的效果。
  接收模塊包含8位串/并移位寄存器、兩個滿標志為181的接收FIFO(RxFifo、RxFifo_Cache)、采樣電路、捕獲電路、讀寫通道選擇電路和移位計數器電路。其中,采樣比較電路采樣起始信號、數據信號和結束標志,通道選擇電路用來對FIFO乒乓切換讀寫通道進行選擇。接收模塊內部結構如圖4所示。采樣電路、捕獲電路在采樣捕獲到起始信號“0”后根據通信協議接收串行數據,經過串/并移位后乒乓存儲到FIFO中,由PCI9054根據滿、空信號乒乓讀取。


1.3 接口模塊設計
  接口模塊主要實現PCI9054和接收、發送模塊的通信,包括傳輸控制邏輯、時鐘分頻控制,筆者根據PCI9054的單周期讀寫時序給出了各類寄存器的讀寫信號、總線響應信號、控制信號等。該模塊含有五個寄存器:接收FIFO寄存器(RFR)、發送FIFO寄存器(TFR)、線路控制狀態寄存器(LCSR)、中斷標識寄存器(IIR)和中斷使能寄存器(IER)。具體說明如下: ·LCSR:通過讀該寄存器獲取各個FIFO的狀態信號(置1有效,0無效)。LCSR格式如下:

  
  TxFifocompleted:數據傳輸完成(1完成,0未完成);
  TxFifoEmpty:發送FIFO寄存器空(1空,0非空);
  TxFifoFull:發送FIFO寄存器滿(1滿,0未滿);
  RxFifoEmpty:接收FIFO寄存器空(1空,0非空);
  RxFifoFull:接收FIFO寄存器滿(1滿,0未滿)。
  ·IIR:通過讀取該寄存器獲得中斷類型。IIR格式如下:

  
  0100(int0):接收FIFO(RxFIFO)滿中斷;
  0010(int1):發送FIFO(TxFIFO)空中斷;
  0001(idle):無中斷。
  ·IER:可以通過寫該寄存器相應位使能或取消中斷。IER格式如下:

  
  TxFifoI:發送FIFO空中斷使能 (1允許,0禁止);
  RxFifoI:接收FIFO滿中斷使能(1允許,0禁止)。
  中斷產生由接口中斷狀態機實現,具體如圖5所示。
  空閑:空閑狀態,沒有中斷產生;
  中斷int0:接收FIFO(RFR)滿,產生中斷,要求PCI9054響應;
  中斷int1:發送FIFO(TFR)空,產生中斷,要求PCI9054寫入數據或讀取中斷標識寄存器IIR。
2 驅動程序的開發
  驅動程序主要是完成對硬件板卡的內存映像地址、I/O地址的存取,并正確處理來自板卡的硬件中斷。與傳統開發設備驅動程序的方法不同,WinDriver不要求開發者非常熟悉操作系統平臺,掌握核心開發/調試知識等;并且WinDriver設備驅動程序工具包將驅動程序的開發作了最大的簡化,它為開發人員提供了功能全面的API函數。開發人員只要根據硬件板卡功能的需要調用所需的函數即可。本測控卡驅動程序需要完成設備的初始化、FIFO的讀寫等,筆者選擇相應的函數將其封裝成一個測控卡驅動類,并加以例化,供應用程序調用,即很好地實現了硬件功能。
  利用專用PCI總線接口芯片可以實現完整的PCI主控模塊和目標模塊接口功能,將復雜的PCI總線接口轉換為相對簡單的用戶接口,避免了用戶直接面對復雜的PCI總線協議,降低了設計難度。利用FPGA設計自己需要的專用電路,具有極大的靈活性,設計者可以根據實際的需要,在FPGA資源允許的條件下對設計進行優化擴展。譬如筆者在設計過程當中,利用FIFO實現了數據緩存,并根據數據的實際長度加大了FIFO的深度,有效地降低了中斷次數或查詢次數;同時,FIFO的乒乓切換很好地滿足了PC機所需的響應時間,保證了接收數據的正確性,對整個系統起到優化作用。利用WinDriver 開發驅動程序,簡單實用,縮短了開發周期。


參考文獻
1 李圣怡,戴一帆,王憲平.Windows環境下軟硬件接口技術[M].長沙:國防科技大學出版社,2001
2 李貴山,陳金鵬.PCI 局部總線及其應用[M].西安:西安電子科技大學出版社,2003
3 葉玉明,姚伯威,彭 衛.基于PCI總線數據采集系統研究[J].中國測試技術,2003(1):47~48
4 PCI9054 Datasheet [M]. USA:PLX Corp,2001

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩亚洲欧美成人| 久久午夜精品一区二区| 欧美在线日韩在线| 亚洲午夜免费福利视频| 一本高清dvd不卡在线观看| 亚洲精品日韩欧美| 亚洲黄色免费| 亚洲国产天堂久久综合| 一区二区亚洲| 伊人一区二区三区久久精品| 国产自产高清不卡| 激情国产一区二区| 影音先锋中文字幕一区| 1024亚洲| 亚洲国产综合91精品麻豆| 亚洲激情中文1区| 亚洲日韩第九十九页| 亚洲精品激情| 一区二区三区日韩欧美| 一区二区三区欧美激情| 亚洲一级免费视频| 亚洲欧美精品suv| 欧美一区免费视频| 久久精品免费播放| 亚洲日本无吗高清不卡| 日韩视频专区| 亚洲影视中文字幕| 午夜精品久久久久久久久久久久久| 亚洲欧美日韩人成在线播放| 午夜精品一区二区三区在线视 | 国产精品免费久久久久久| 国产精品入口尤物| 国产日产亚洲精品| 狠狠狠色丁香婷婷综合激情| 亚洲福利视频二区| 日韩视频在线一区二区三区| 亚洲午夜在线视频| 欧美一区二区三区在线视频| 亚洲国产欧美一区二区三区久久 | 久久成人资源| 麻豆精品在线观看| 欧美日韩系列| 国产亚洲欧美一区二区| 亚洲第一天堂无码专区| 这里只有精品电影| 久久成人一区| 一区二区三区视频在线播放| 欧美影院在线播放| 欧美成人一区二区三区片免费| 欧美日韩免费观看一区二区三区| 国产精品久久久久久五月尺| 狠狠色丁香婷综合久久| 亚洲精品偷拍| 欧美亚洲三区| 日韩一区二区福利| 欧美与黑人午夜性猛交久久久| 久久婷婷亚洲| 欧美天天视频| 黄色亚洲在线| 亚洲图片欧美一区| 亚洲国产人成综合网站| 牛牛国产精品| 欧美精品激情在线观看| 一区二区三区四区精品| 欧美一级成年大片在线观看| 亚洲精品黄网在线观看| 午夜久久影院| 欧美电影免费观看| 国产精品夜夜夜| 亚洲高清久久网| 午夜精品国产更新| 日韩视频永久免费| 久久精品国产999大香线蕉| 欧美日韩精品中文字幕| 国产一区二区三区视频在线观看| 日韩一区二区电影网| 欧美在线综合| 亚洲欧美电影院| 欧美激情综合| 韩国成人福利片在线播放| 亚洲视频电影图片偷拍一区| 亚洲精品一区二区三区99| 欧美在线视频免费播放| 欧美日韩成人一区| 黄色成人av在线| 亚洲欧美国产va在线影院| 一区二区av在线| 噜噜噜久久亚洲精品国产品小说| 国产精品毛片在线看| 亚洲精品四区| 亚洲精品视频免费在线观看| 久久免费精品日本久久中文字幕| 国产精品欧美一区喷水| 日韩手机在线导航| 亚洲人成网站影音先锋播放| 久久嫩草精品久久久精品| 国产精品美女久久久久久久| 日韩亚洲精品在线| 99re这里只有精品6| 老牛国产精品一区的观看方式| 国产欧美韩国高清| 亚洲一级在线观看| 亚洲一品av免费观看| 欧美激情中文字幕在线| 在线日韩中文| 亚洲第一在线综合在线| 久久久精品国产99久久精品芒果| 国产欧美日韩亚州综合| 亚洲免费综合| 午夜久久久久久| 国产精品欧美一区二区三区奶水| 一区二区高清在线观看| 日韩一区二区精品视频| 模特精品在线| 亚洲电影中文字幕| 亚洲国产经典视频| 老司机aⅴ在线精品导航| 激情av一区| 亚洲国产精品久久人人爱蜜臀| 久久久国产精品亚洲一区 | 欧美视频亚洲视频| 日韩视频在线观看国产| 亚洲深夜影院| 欧美午夜宅男影院在线观看| 夜夜夜久久久| 亚洲欧美日韩一区二区| 国产精品国产三级国产专区53| 一区二区三区 在线观看视| 一区二区三区欧美日韩| 欧美日韩精品三区| 99精品国产热久久91蜜凸| 亚洲性视频网站| 国产精品久久久一区二区| 亚洲综合色视频| 久久精品国产成人| 国内成+人亚洲| 亚洲日产国产精品| 欧美日韩一区免费| 亚洲一区二区三区精品在线观看 | 久久国产日韩| 一区二区在线不卡| 日韩网站免费观看| 欧美午夜精品久久久久久人妖| 亚洲午夜激情| 久久嫩草精品久久久精品| 亚洲第一黄网| 亚洲深夜影院| 国产日本欧美一区二区三区在线| 久久av一区二区| 暖暖成人免费视频| aa国产精品| 欧美一级免费视频| 极品尤物一区二区三区| 日韩午夜电影av| 国产精品午夜在线| 亚洲国产91精品在线观看| 欧美裸体一区二区三区| 亚洲天堂成人在线观看| 久久精品国产成人| 亚洲国产精品一区二区久| 亚洲在线视频免费观看| 国内精品美女av在线播放| 日韩亚洲精品在线| 国产麻豆日韩| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩午夜激情| 欧美在线一区二区三区| 欧美日韩国产欧| 欧美一区网站| 欧美日韩另类字幕中文| 欧美一级久久| 欧美三级午夜理伦三级中视频| 性欧美大战久久久久久久免费观看| 欧美激情一区二区三区在线 | 欧美一区二区三区视频在线观看| 欧美黄色aa电影| 亚洲欧美在线观看| 欧美激情在线播放| 午夜精品成人在线| 欧美人成在线视频| 香蕉久久夜色精品国产| 欧美日韩精品二区| 久久精品国产2020观看福利| 欧美三日本三级少妇三99 | 亚洲免费观看视频| 国产亚洲激情视频在线| 一区二区三区国产| 精品动漫av| 欧美一区深夜视频| 亚洲精品乱码久久久久久久久| 久久久久国内| 亚洲无限av看| 欧美精品性视频| 亚洲第一级黄色片| 国产精品网红福利| 在线视频欧美精品| 亚洲国产高清在线| 久久精品导航| 亚洲一区视频在线| 欧美日韩色婷婷|