《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于FPGA與ARM的遙測數據網絡化采集[圖]
基于FPGA與ARM的遙測數據網絡化采集[圖]
來源:《現代電子技術》2011年第16期
王冬冬 李宇 張保祥 中國空空導彈研究院
摘要: 基于FPGA與ARM的遙測數據網絡化采集[圖],摘要:現有的遙測接收機為PCI接口,需安裝在工控機上使用,為實現設備小型化、便攜化,設計實現了小型網
Abstract:
Key words :
</a>摘要:現有的遙測接收機為PCI接口,需安裝在工控機上使用,為實現設備小型化、便攜化,設計實現了小型網絡接口遙測解調模塊,可配合帶有網口的計算機使用。采用FPGA" title="FPGA">FPGA" title="FPGA">FPGA" title="FPGA">FPGA進行遙測數據幀同步與IRIG—B時碼解調,將接收到的遙測數據添加時碼后發送給ARM處理器中的Linux系統,并編寫Linux 2.6下的FPGA驅動程序,實現FPGA數據的讀取,然后通過網卡以TCP/IP格式發給主機,主機實現數據存儲與顯示。

以太網接口通信速度快,傳輸可靠,使用和配置方便,對于20 Mb/s以下的碼速率,100 Mb/s的網卡可以進行不丟包轉發,采用TCP包格式還可使設備小型化,便于數據的轉發,因此有必要擴展設備的以太網功能。

1 整體模塊設計

1.1 系統設計

系統設計框圖如圖1所示。其中,采編器或接收機解調輸出的PCM信號及時鐘輸入到FPGA中進行幀同步,IRIG—B碼信息也送到FPGA中進行解調,得到時間信息。數據與時間一起存入SRAM乒乓緩沖區中,達到一定大小后,FPGA向ARM處理器發器中斷,ARM中運行的Linux系統,將數據取走,進行TCP/IP打包,發送給接收計算機。

基于FPGA與ARM的遙測數據<a class=網絡化采集" height="222" src="http://files.chinaaet.com/images/20111118/384766c4-6d75-4cda-a513-09d019d1e21b.jpg" width="244" />

在設備開始工作前,需要在計算機端進行參數設置,計算機TCP/IP包將參數發送給ARM處理器,由ARM處理器轉發給FPGA。幀同步器的設計中,碼速率為100b/s~10Mb/s,幀長為4~4096Word,幀同步碼組為4~32,ARM網卡為100Mb/s。

1.2 硬件實現

PCB采用6層結構,相鄰布線層,水平垂直交叉,電路層與電源層單獨分開,提供良好的電磁兼容特性。

1.2.1 FPGA

FPGA選擇EP1C12,為實現乒乓緩沖結構,采用SRAM為IS61LV25616。輸入信號使用SMA線纜連接,在傳輸過程中會引入衰減,信號輸入輸出易出現阻抗不匹配的情況,選用AD8556構成射隨器,對輸入信號進行匹配,同時也增大模擬源的輸出能力。

1.2.2 ARM

在此采用S3C2440,內核為ARM920T,最高頻率為400MHz,帶MMU支持操作系統。內存采用2×32MB的SDRAM,存儲采用128MB NAND FLASH,網卡采用DM9000A。

1.2.3 ARM與FPGA的接口連接

這里采用總線接口,將FPGA作為一個存儲設備掛在ARM的存儲器總線上,如圖2所示。

基于FPGA與ARM的遙測數據網絡化采集

FPGA在ARM中起始地址為0x18000000,以4B對齊,占用0x80個地址,地址范圍為0x18000000~Ox1800007C,中斷為EINT0。

在FPGA內部采用讀/寫指針來模擬FIFO,用一個地址來讀取FPGA數據,其余地址用于配置幀同步器與模擬源的參數。

2 幀同步與B碼解調

FPGA完成PCM數據的幀同步和解調B碼,寫入到乒乓SRAM緩沖區中,實現如圖3所示。

基于FPGA與ARM的遙測數據網絡化采集

2.1 幀同步模塊

幀同步器根據幀同步碼組的相關性和周期性,經過相關運算將同步碼從PCM串行流中識別出來,原理框圖如圖4所示。

基于FPGA與ARM的遙測數據網絡化采集

PCM數據按時鐘進行串/并轉換,與本地幀同步碼進行同或運算后再與上屏蔽位,由全加網絡將相關運算結果按位相加統計結果中1的個數,大于門限值則表示可能接收到了幀同步碼。

為避免虛警和漏檢,使幀同步器穩定可靠工作,采用搜索、校核、鎖定三態邏輯。

系統開始時處于搜索態,符合相關器輸出,由搜索態轉入校核態。在預期檢測窗口內沒有幀碼,從校核返回到搜索態。連續通過校核數α,進入鎖定態。為避免幀同步碼的漏檢,連續漏檢超過保護幀數β,幀同步才返回搜索態,否則保持在鎖定態,幀脈沖由本地產生。

2.2 IRIG—B碼解調

IRIG時間序列碼是一種串行碼,共有3種碼元,如圖5所示。

基于FPGA與ARM的遙測數據網絡化采集

P碼元是位置碼元,連續2個P碼為一幀的開始,第1個P碼元定義為P0,第2個P碼元為秒脈沖pps,上升沿為該秒的準時刻,時間信息以BCD碼依次分布在其后的碼元中。解調時先進行pps的提取,再進行秒、分、時、天的信息提取,其流程如圖6所示。

基于FPGA與ARM的遙測數據網絡化采集

時鐘頻率為1MHz,用計數器對輸入信號的脈寬進行計數。8ms,5ms,2ms脈寬計數為8000,5000,2000。輸入B碼的脈寬會混有干擾,晶振時鐘也存在一定的誤差,計數器的計時判別應浮動一個范圍,設置門限為脈寬的85%~115%,當滿足一定范圍的數值時,分別輸出P碼,0碼,1碼信號。

FPGA中的時碼產生“天:時:分:秒:毫秒:微秒”信息。解調出B碼時,FPGA更新內部時間,B碼中不含毫秒與微秒信息,由FPGA根據秒脈沖信息的準時刻來生成。

3 FPGA驅動程序開發

在Linux中,所有的硬件設備都像常規文件一樣進行打開、關閉和讀/寫。把FPGA當作字符設備進行設計,驅動由設備加載與卸載,以及文件操作file_operation結構體中成員函數組成。

3.1 加載與卸栽設備驅動

FPGA設備驅動程序初始化流程為動態獲得主設備號、字符設備注冊和申請中斷;卸載流程為注銷設備,釋放設備編號。

定義一個設備結構體來表示FPGA,如下:   

基于FPGA與ARM的遙測數據網絡化采集

當用戶程序讀FPGA設備時,數據還未準備好,此時驅動程序應該阻塞該進程,將其置入睡眠狀態直到條件滿足。此時需要初始化一個等待隊列頭,對讀進程的休眠和喚醒時使用:

基于FPGA與ARM的遙測數據網絡化采集

在卸載函數中,刪除一個cdev,完成字符設備的注銷,然后釋放設備編號:

基于FPGA與ARM的遙測數據網絡化采集

3.2 文件接口操作

Linux為所有的設備文件都提供了統一的操作函數,FPGA設備驅動。file_operations包含打開函fpga_open、讀函數fpga_read、設置參數函數fpga_ioctl和關閉設備函數fpga_release。

3.2.1 打開與關閉FPGA設備

在打開設備與關閉設備時會調用open函數與release函數,在open函數中,要對設備進行I/O內存資源映射及中斷申請。

設備驅動程序中,需通過內存管理單元MMU將設備的虛擬地址映射到物理地址。根據FPGA在S3C2440中的物理地址,定義如下宏:

基于FPGA與ARM的遙測數據網絡化采集

使用ioremap()對FPGA的I/O內存資源進行映射,把物理內存地址映射為一個內核指針:

基于FPGA與ARM的遙測數據網絡化采集

數據交換采用中斷,需先設置硬件中斷方式,然后向系統注冊中斷函數,實現如下:

基于FPGA與ARM的遙測數據網絡化采集

FPGA連接在ARM的EINT0上,isr_fpga為中斷處理函數指針。當關閉FPGA設備時,需釋放I/O內存,釋放中斷:

基于FPGA與ARM的遙測數據網絡化采集

3.2.2 驅動程序控制接口Ioctl

Ioctl用來設置FPGA中幀同步器和模擬源的參數,部分設置命令如表1所示。

基于FPGA與ARM的遙測數據網絡化采集

在此,采用統一的命令碼方式,包含幻數、序數、傳輸方向、數據長度,使用宏_IO(),_IOR(),_IOW()和IOWR()輔助生成,如命令0設置如下:

基于FPGA與ARM的遙測數據網絡化采集

在Ioctl中,采用switeh(cmd)來實現對FPGA參數的設置及FPGA狀態的讀取。

3.2.3 中斷函數及讀函數

當FPGA產生中斷時,根據緩沖區的大小,中斷函數循環對FPGA映射后的地址讀取數據。ARM與FPGA接口為16位,使用inw讀取,數據存放在驅動程序的緩沖區中:

基于FPGA與ARM的遙測數據網絡化采集

應用程序讀取數據時,調用read函數,參數buffer為用戶空間緩沖區的指針,利用copy_to_user函數將數據從內核空間拷貝到用戶空間,當設備中暫時沒有數據時,讀進程應當被休眠:

基于FPGA與ARM的遙測數據網絡化采集

flag為一個標志位,當flag被中斷函數設置為1時表示設備中有數據,此時讀進程可被換醒。

3.2.4 用戶程序及測試

設備驅動實現后,需編寫相應的用戶程序來進行測試驅動程序和實現數據的網絡轉發。在用戶程序中,讀/寫FPGA設備使用與普通文件一樣的操作函數。移植Linux時配置好網卡的地址,然后使用Socket編程實現數據的TCP/IP轉發,用遙測軟件接收到的數據測試如圖7所示。

基于FPGA與ARM的遙測數據網絡化采集

通過測試可以看到,同步碼FDB18450被正確識別,IRIG-B解碼為當前時間。

4 結語

在此,基于FPGA與ARM進行遙測數據的幀同步遙測數據的網絡轉發,充分地利用了FPGA與ARM各自的特點,它可使FPGA+ARM在數據接收處理中得到廣泛應用。

此內容為AET網站原創,未經授權禁止轉載。

相關內容


主站蜘蛛池模板: videos18欧美另类极品 | 九九视频在线看精品 | 免费一级欧美在线观看视频片 | 国产欧美日韩专区 | 国产乱人视频在线播放不卡 | 97影院理论在线观看 | 三级黄色片免费看 | 在线视频综合网 | 亚洲成人xxx| 日日夜夜亚洲 | 国产精品伦子一区二区三区 | 国产精品国产三级在线高清观看 | 中文在线日本免费永久18近 | 精品国产欧美一区二区最新 | 日本不卡二区 | 国内精品区一区二区三 | 色综合久久久久久久久五月 | 欧美在线视频免费播放 | 色老头在线视频 | 黄色一级片中国 | 蕾丝视频永久在线入口香蕉 | 宅男噜噜噜一区二区三区 | 好吊日在线 | 50岁老女人毛片一级亚洲 | 一级黄色夫妻录像 | 国产福利短视频 | 免费黄色毛片视频 | 免费国产成人α片 | 国产成人精品高清在线观看99 | 久久精品免视看国产成人2021 | 99精品热女视频专线 | 波多野结衣国产一区二区三区 | 亚洲欧美日韩第一页 | 美女黄网站全是免费网址 | 国产成人精品s8p视频 | 亚洲国产婷婷综合在线精品 | 毛片网站网址 | 午夜国产精品免费观看 | 暴力调教抖s浪荡总裁受文 白洁性荡生活l六 | 欧美羞羞视频 | 久久这里只有精品免费播放 |