999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的多路數據采集與傳輸系統設計

2014-11-15 02:51:18劉寶盈
電子測試 2014年18期
關鍵詞:系統設計

李 華,劉寶盈,劉 萌,謝 謙

(商洛學院,陜西商洛,726000)

0 前言

在實際工程應用中,數據采集是最重要的設計環節之一。傳統的設計形式存在一次只采集一路數據且傳輸距離較短、容易丟包等缺陷,已經遠遠不能滿足實際應用的需要。另一方面,從設計的角度考慮,因為同時采集并傳輸多路數據要兼顧準確性和速度等眾多因素,所以必須采用新的設計思路與方法來實現。本文以Xilinx公司的FPGA為主控芯片,結合TI公司的多路、高速ADC以及Philips公司的CAN協議芯片—SJA1000實現了對8路模擬數據的實時采集與傳輸。文章在理論分析的同時還給出了相關設計的ModelSim時序仿真波形,并對系統的實際采集與傳輸效果進行了分析與評價。

1 系統組成及工作原理

本文所設計的8數據采集與傳輸系統以FPGA為核心,首先用于產生ADC128正常工作所需要的時序,當ADC128正常工作并輸出一位數字信號時,將一位信號送入FPGA進行串并轉換,同時進行數據重組,用于改變數據格式以適應SJA1000的傳輸需要,然后將數據通過SJA1000協議芯片輸出,經PCA82C250后傳給應用系統。整個系統充分發揮了FPGA并行運算的優勢,有效提高了數據采集和傳輸的速度和精度。

圖1 系統原理框圖

圖1 所示為本文系統的原理框圖,系統的具體工作過程為:將需要采集的8路模擬信號連接到ADC128的輸入端(IN0-IN7),為了使ADC能夠工作在50kSPS采集模式下,FPGA提供給ADC128的時鐘頻率為0.8MHz,這時ADC就開始以0.8MHz的數據速率輸出一位數字信號。為了應用方便,系統首先將一位數字信號經過串并轉換,變成12位的數字信號。但是一般傳輸系統的數據形式是8位,因此為了節約帶寬,通過數據重組單元將12位信號重組成8位數字信號。因為ADC128以50kSPS的速率采集數據時,它每秒輸出的數據量為50k*12b=0.6Mb,相應的帶寬為0.6Mbps,而CAN的最大傳輸速率為1Mbps,滿足帶寬要求;和一般的通信總線相比,CAN總線具有更好的數據通信可靠性、實時性和靈活性,因此應用領域越來越廣泛,鑒于以上考慮,本文利用CAN總線傳輸采集到的數據。

2 系統詳細設計

2.1 ADC128設計

ADC128是美國TI公司的一款單5V供電的12位高速、低功耗、8通道同步采樣模數轉換器。ADC128的控制主要由SCLK、DOUT、DIN和CS完成,其中,SCLK 是AD時鐘,控制著轉換過程和讀出過程,它的頻率直接影響著轉換速率,本文設計使用的是0.8MHz,保證了50kSPS的轉換速率;DOUT是數字信號輸出端口,位寬為1,在SCLK的下降沿輸出結果;DIN是控制信號,主要用于設置ADC的寄存器用于轉換信號的選擇,位寬為1 ,在SCLK的上升沿使能;CS是芯片使能信號,位寬為1,只有當CS為低電平時,ADC的AD轉換過程才能繼續。

圖2所示為ADC128采集8路數據,經過串并轉換得到12位并行數據的時序仿真波形。在CS為低時,Din用于對輸入模擬通道進行選擇,本設計從0-7依次累加,完成8路數據的采集。ADC128在設計時需要注意的是,它是延時輸出器件,即第0個過程選擇的數據,在第1個過程數據才輸出,所以,一次數據周期總共的轉換過程為9個,即第7個數據選擇完成后,還要加一個讀出周期,這樣才能將輸入的8路數據完整的采集出來。

圖2 ADC128采集8路數據仿真波形

2.2 數據整形

由于ADC128每次輸出的數據是12bit,而CAN總線的數據幀格式是8bit,因此,為了傳輸方便且不浪費帶寬,我們將ADC128輸出且經過串并轉換過的數據進行了處理,其思路是數據拼接,例如取第一個數據的高8位輸出給CAN,再將第一個數據的低4位和第二個數據的高4位組合輸給CAN,把第二個數余下的8位作為CAN的第三個數據,如此處理之后,就實現了ADC128和CAN總線之間數據格式的匹配,不會造成數據的丟失,同時充分利用了CAN總線的帶寬,不會造成浪費。

但是,數據拼接后,在數據傳輸過程中給數據的識別帶來了一定的影響,因為CAN協議一次只能傳輸8個字節的數據,而ADC一次輸出的數據轉化成8位數據需要12字節,因此,整個采集傳輸過程就變為了一個數據流,即:無法區分什么地方是數據開始,什么地方是數據結束。為了解決這個問題,我們采取了添加數據標識的方法,即每包數據的開始用0x55標識,而一幀數據結束則用0xAA標識,這樣,數據解析單元就可以根據這兩個標識碼,將其中間的數據提取,并按照拼接規則解析即可。

2.3 CAN總線設計

CAN總線的操作主要是通過對CAN總線控制器—SJA1000進行操作來完成, SJA1000的操作主要分為三個步驟:初始化、數據發送和數據接收,如圖3所示。

圖3 SJA1000控制流圖

2.3.1 初始化過程

在SJA1000上電后,首先進行硬件復位,即給reset管腳一個低電平,并且要持續100ms的時間,再將該信號抬高,完成硬件的初始化。然后進行軟件復位,即進行寄存器的初始化以完成特定的功能,由于本設計使用的是BasicCAN模式,因此主要是對以下寄存器進行賦初值:控制寄存器、命令寄存器、狀態寄存器、中斷寄存器、驗收代碼寄存器、驗收屏蔽寄存器、總線定時0、總線定時1、輸出控制寄存器和時鐘分頻器。其中,驗收代碼寄存器和驗收屏蔽寄存器主要用于標識碼的確認;總線定時0、總線定時1用于總線傳輸速度的設定,最大總線長度越長,傳輸速度越低;輸出控制寄存器用于設置總線輸出驅動方式。

軟件的初始化本質上是對SJA1000的特定寄存器進行寫操作,但是前提是要在復位模式下進行,即寫之前先要設置模式寄存器的RM為1使SJA1000進入復位模式。SJA1000的初始化過程的時序仿真如圖4所示。在ALE的下降沿將寄存器打入,在WR的上升沿將數據寫入,完成對SJA1000的初始化。

圖4 SJA1000初始化過程

2.3.2 發送數據

SJA1000的數據發送和初始化類似,也是將要發送的數據寫入SJA1000。但是SJA1000在發送數前,一般先檢查狀態寄存器的3個狀態位:

1)接收狀態位(SR.4):如果目前SJA1000正在接收信息,則不能發送,至少等到本次接收完畢才能申請發送;

2)發送狀態位(SR.3):檢查SJA1000是否正在發送信息,如果正在發送,則需要等一次發送完成才能啟動新的發送任務;

3)發送緩存區(SR.2):只有該緩沖區處于釋放狀態時才能發送信息。

當以上3個寄存器滿足寫要求時,開始SJA1000的寫操作。因為BasicCAN一包數據由10個字節組成,因此,一包數據的發送要連續對10-19共10個寄存器進行連續10次的數據寫入,其中,前兩個字節為描述符,分別定義了識別碼、數據類型和數據長度。因為,我們在驗收代碼寄存器設置了相應的代碼約定,因此,描述符的第一個字節要和設置的代碼完全一致才能發送成功,同時,驗收代碼位和信息識別碼的高8位相等且與驗收屏蔽位的相應位相或應該為1,因此,驗收屏蔽寄存器設置成0xFF的形式。1位的遠程發送請求PTR,為1時表示無數據,為0時根據數據長度確定后面的數據,數據長度DLC,有8、4、2、1四個選項,數據的長度位設置的是要發送數據的長度。接下來的8個字節用于存放數據。這樣,一個完整的CAN數據幀就完成了,使能發送寄存器CMR.0完成數據幀的發送。相應的時序仿真波形如圖5所示:

圖5 SJA1000寫數據時序仿真波形

2.3.3 接收數據

相比發送過程,接收過程要相對復雜一些,有些文獻使用了查詢方式進行,即接收緩存器RXFIFO中有數據時,接收緩沖標志位RBS為1,這時就可以進行讀操作,但是,這種方式要不停的查詢該位以判斷何時進行讀操作,因此,實際操作過于麻煩。本文設計將SJA1000的/INT管腳作為外部觸發條件,即當系統捕獲到/INT的下降沿時,表明有中斷,再查詢是不是數據中斷,是表明接收緩存器RXFIFO有數據存在,開始讀取數據。這樣的設計避免了不停的查詢,因此,簡化了設計。其中,SJA1000的查詢操作是將需要查詢的寄存器送入地址A7-A0,然后讀取數據D7-D0,根據D7-D0的值判斷下一步的動作,當然此處僅需發送一包數據即可,如果要查詢多個寄存器,就一次發送多個數據包。

發送緩存器的地址是10-19,而接收緩存器的識別碼、遠程發送請求位和數據長度碼同發送緩沖器的相同只不過地址是20-29。讀一般也要連續進行10次,前面2包是描述符,包括11位的識別碼,1位的遠程發送請求PTR和數據長度DLC信息。由于本文系統約定了數據長度是8字節,因此,后面8字節全是有效數據。讀完一包數據,需要釋放緩沖區,返回空閑狀態,即使能寄存器CMR.2,為下一包數據的接收做準備。

3 試驗結果與分析

本文系統使用了模塊化設計思想和自頂向下的設計思路,利用VerilogHDL語言、在Xilinx公司的ISE10.1軟件環境下實現,硬件平臺選用的是xilinx公司的XC2V3000。為了驗證本文系統的數據采集效果,我們從兩方面進行說明。一方面,3.1和3.3節的時序仿真波形從理論上證明了設計的正確性;另一方面,本文系統設計完成后,進行了芯片燒寫,并對實際數據進行了采集,為了直觀,我們使用的是Xilinx自帶的Chipscope進行觀測,結果如圖6所示,表示的是將ADC128采集的一包數據發給SJA1000的情況,數據以0x55開始,后面緊接采集到的數據,進一步證明了設計的可行性和正確性。

圖6 發送采集數據過程截圖

4 結束語

本文設計僅采用一片FPGA完成了對8路模擬數據的采集、數據格式的轉換和數據的CAN總線傳輸,使傳統復雜的系統得到簡化,同時采用了流水線設計的思想,充分發揮了FPGA的并行設計優勢,使整個過程做到了實時處理,相比傳統的基于單片機的設計,更加靈活,并且移植更加方便,從而大大提高了效率。目前,該系統已經成功應用到某工業現場。另外,雖然本文設計用于采集8路模擬信號,但是,我們對整個系統分析可知,只要修改一下采集對象和路數,該系統就可以應用到其它數據采集系統中,具有較好的通用性。

[1]仲建鋒,胡慶生,孫遠.基于FPGA的多路高速串并轉換器設計[J].電子器件,2008, 31(2):657~660.

[2]張貴清,朱磊,顏露新,等.基于FPGA的多路同步實時數據采集方案設計與實現[J].測控技術 ,2005,24(12):26~29.

[3]儲成君,任勇峰,劉東海,等.基于FPGA的多通道信號采集電路設計[J].科學技術與工程,2013,13(19):5692~5695。

[4]陳彥,張宏偉,林宏宇.基于FPGA的CMOS圖像傳感器LUPA-4000時序設計[J].航天器返回與遙感 ,2012,33(5):62~67.

猜你喜歡
系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 成人日韩视频| 3344在线观看无码| 国产亚洲高清视频| 国产福利小视频在线播放观看| 91网址在线播放| 国产成人在线无码免费视频| 国产无码精品在线播放| 亚洲无码高清免费视频亚洲| 中文字幕一区二区视频| 亚洲色精品国产一区二区三区| 亚洲香蕉在线| www.91在线播放| 黄色网在线免费观看| 中文字幕在线不卡视频| 国产91高清视频| 美美女高清毛片视频免费观看| 激情网址在线观看| 亚洲天堂视频在线观看| 在线观看国产精品第一区免费| 亚洲第七页| 国产97视频在线观看| 欧美全免费aaaaaa特黄在线| 国产精品亚欧美一区二区| 欧美午夜视频在线| 国产成人综合日韩精品无码不卡| 一本大道香蕉高清久久| 国产激情第一页| 欧美亚洲一区二区三区在线| 欧美在线精品怡红院| 国产成人综合久久精品尤物| 亚洲色图在线观看| 91精品福利自产拍在线观看| 婷婷六月激情综合一区| 无码免费的亚洲视频| 日韩专区欧美| 国产精品密蕾丝视频| 亚洲大尺度在线| 666精品国产精品亚洲| 国产精品亚洲综合久久小说| a在线观看免费| 国模视频一区二区| AV不卡国产在线观看| 找国产毛片看| 亚洲色图另类| 精品福利网| 亚洲无码高清视频在线观看| 国产最新无码专区在线| 亚洲无码高清视频在线观看| 91成人免费观看| 97av视频在线观看| 亚洲一区二区三区麻豆| 热99re99首页精品亚洲五月天| 午夜高清国产拍精品| 午夜一级做a爰片久久毛片| 高清国产va日韩亚洲免费午夜电影| 国产成人高清精品免费| 国产免费黄| 精品无码国产一区二区三区AV| 久久综合成人| 欧美一级在线播放| 啪啪免费视频一区二区| 亚洲福利视频一区二区| 无码内射在线| 99ri精品视频在线观看播放| 国产成人毛片| 精品少妇人妻一区二区| 久久免费视频6| 啦啦啦网站在线观看a毛片| 福利国产在线| 99视频国产精品| 韩日无码在线不卡| 高清免费毛片| 国产成人欧美| 最新国产网站| 国产午夜小视频| 99久久国产精品无码| 54pao国产成人免费视频| 夜夜操国产| 日韩无码黄色网站| 色婷婷成人网| 91久久偷偷做嫩草影院| 久久久久久久97|