《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA與ARM的遙測數據網絡化采集
基于FPGA與ARM的遙測數據網絡化采集
現代電子技術
王冬冬,李 宇,張保祥
摘要: 采用FPGA進行遙測數據的幀同步與IRIG—B時碼解調,將接收到的遙測數據添加時碼后發送給ARM處理器中的Linux系統,并編寫Linux 2.6下的FPGA驅動程序,實現FPGA數據的讀取,然后通過網卡以TCP/IP格式發給主機,主機實現數據存儲與顯示。
Abstract:
Key words :

摘要:現有的遙測接收機為PCI接口,需安裝在工控機上使用,為實現設備小型化、便攜化,設計實現了小型網絡接口遙測解調模塊,可配合帶有網口的計算機使用。采用FPGA進行遙測數據的幀同步與IRIG—B時碼解調,將接收到的遙測數據添加時碼后發送給ARM處理器中的Linux系統,并編寫Linux 2.6下的FPGA驅動程序,實現FPGA數據的讀取,然后通過網卡以TCP/IP格式發給主機,主機實現數據存儲與顯示。
關鍵詞:FPGA;幀同步;ARM;遙測數據;網絡化;Linux

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

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

a.JPG


    在設備開始工作前,需要在計算機端進行參數設置,計算機TCP/IP包將參數發送給ARM處理器,由ARM處理器轉發給FPGA。幀同步器的設計中,碼速率為100b/s~10Mb/s,幀長為4~4 096Word,幀同步碼組為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,最高頻率為400 MHz,帶MMU支持操作系統。內存采用2×32 MB的SDRAM,存儲采用128 MB NAND FLASH,網卡采用DM9000A。
1.2.3 ARM與FPGA的接口連接
    這里采用總線接口,將FPGA作為一個存儲設備掛在ARM的存儲器總線上,如圖2所示。

b.JPG


    FPGA在ARM中起始地址為0x18000000,以4 B對齊,占用0x80個地址,地址范圍為0x18000000~Ox1800007C,中斷為EINT0。
    在FPGA內部采用讀/寫指針來模擬FIFO,用一個地址來讀取FPGA數據,其余地址用于配置幀同步器與模擬源的參數。

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

c.JPG


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

d.JPG


    PCM數據按時鐘進行串/并轉換,與本地幀同步碼進行同或運算后再與上屏蔽位,由全加網絡將相關運算結果按位相加統計結果中1的個數,大于門限值則表示可能接收到了幀同步碼。
    為避免虛警和漏檢,使幀同步器穩定可靠工作,采用搜索、校核、鎖定三態邏輯。
    系統開始時處于搜索態,符合相關器輸出,由搜索態轉入校核態。在預期檢測窗口內沒有幀碼,從校核返回到搜索態。連續通過校核數α,進入鎖定態。為避免幀同步碼的漏檢,連續漏檢超過保護幀數β,幀同步才返回搜索態,否則保持在鎖定態,幀脈沖由本地產生。
2.2 IRIG—B碼解調
    IRIG時間序列碼是一種串行碼,共有3種碼元,如圖5所示。

e.JPG


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

f.JPG


    時鐘頻率為1 MHz,用計數器對輸入信號的脈寬進行計數。8 ms,5 ms,2 ms脈寬計數為8 000,5 000,2 000。輸入B碼的脈寬會混有干擾,晶振時鐘也存在一定的誤差,計數器的計時判別應浮動一個范圍,設置門限為脈寬的85%~115%,當滿足一定范圍的數值時,分別輸出P碼,0碼,1碼信號。
    FPGA中的時碼產生“天:時:分:秒:毫秒:微秒”信息。解調出B碼時,FPGA更新內部時間,B碼中不含毫秒與微秒信息,由FPGA根據秒脈沖信息的準時刻來生成。

3 FPGA驅動程序開發
    在Linux中,所有的硬件設備都像常規文件一樣進行打開、關閉和讀/寫。把FPGA當作字符設備進行設計,驅動由設備加載與卸載,以及文件操作file_operation結構體中成員函數組成。
3.1 加載與卸栽設備驅動
    FPGA設備驅動程序初始化流程為動態獲得主設備號、字符設備注冊和申請中斷;卸載流程為注銷設備,釋放設備編號。
    定義一個設備結構體來表示FPGA,如下:   
g.JPG
    當用戶程序讀FPGA設備時,數據還未準備好,此時驅動程序應該阻塞該進程,將其置入睡眠狀態直到條件滿足。此時需要初始化一個等待隊列頭,對讀進程的休眠和喚醒時使用:
    j.JPG
    在卸載函數中,刪除一個cdev,完成字符設備的注銷,然后釋放設備編號:
    k.JPG
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中的物理地址,定義如下宏:
    l.JPG
    使用ioremap()對FPGA的I/O內存資源進行映射,把物理內存地址映射為一個內核指針:
m.JPG
    數據交換采用中斷,需先設置硬件中斷方式,然后向系統注冊中斷函數,實現如下:
h.jpg
    FPGA連接在ARM的EINT0上,isr_fpga為中斷處理函數指針。當關閉FPGA設備時,需釋放I/O內存,釋放中斷:
   
3.2.2 驅動程序控制接口Ioctl
    Ioctl用來設置FPGA中幀同步器和模擬源的參數,部分設置命令如表1所示。

o.JPG


    在此,采用統一的命令碼方式,包含幻數、序數、傳輸方向、數據長度,使用宏_IO(),_IOR(),_IOW()和IOWR()輔助生成,如命令0設置如下:
    p.JPG
    在Ioctl中,采用switeh(cmd)來實現對FPGA參數的設置及FPGA狀態的讀取。
3.2.3 中斷函數及讀函數
    當FPGA產生中斷時,根據緩沖區的大小,中斷函數循環對FPGA映射后的地址讀取數據。ARM與FPGA接口為16位,使用inw讀取,數據存放在驅動程序的緩沖區中:
    q.JPG
    應用程序讀取數據時,調用read函數,參數buffer為用戶空間緩沖區的指針,利用copy_to_user函數將數據從內核空間拷貝到用戶空間,當設備中暫時沒有數據時,讀進程應當被休眠:
    
    flag為一個標志位,當flag被中斷函數設置為1時表示設備中有數據,此時讀進程可被換醒。
3.2.4 用戶程序及測試
    設備驅動實現后,需編寫相應的用戶程序來進行測試驅動程序和實現數據的網絡轉發。在用戶程序中,讀/寫FPGA設備使用與普通文件一樣的操作函數。移植Linux時配置好網卡的地址,然后使用Socket編程實現數據的TCP/IP轉發,用遙測軟件接收到的數據測試如圖7所示。

u.JPG


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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一区二区不卡视频在线观看 | 日韩欧美亚州 | 日韩欧美亚洲国产一区二区三区 | 日韩欧美成人乱码一在线 | 夜夜狠| 成人五月网 | 欧美色图亚洲 | 涩涩爱在线观看 | 欧美青青草 | 717影院理论午夜伦不卡久久 | 欧美日韩精品一区二区三区不卡 | 黄色一级片欧美 | 色永久| 欧洲真实呦女网站 | 香蕉久久夜色精品国产小优 | 成年人免费视频观看 | 精品一区二区高清在线观看 | 在线毛片免费观看 | 中文字幕乱视频 | 黄色免费在线视频 | 最近免费中文字幕视频高清在线看 | 羞羞的影院 | 操人的网站| 欧美亚洲桃花综合 | 麻豆国产高清在线播放 | 欧美一级高清免费播放 | 国产一区在线观看视频 | 欧美日韩精彩视频 | 亚洲视频在线免费观看 | 国产亚洲欧美另类一区二区三区 | 国产成人精品aaaa视频一区 | 欧美一区二区三区香蕉视 | 免费国产精品视频 | 精品视频一区在线观看 | 日本操片 | 国产成人免费影片在线观看 | 黑丝美脚 | 日韩黄色片视频 | 一级特一级特色生活片 | 五月开心久久 | 日皮视频免费 |