《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種空間相機的數據通信系統設計
一種空間相機的數據通信系統設計
來源:電子技術應用2011年第1期
張培坤1,2, 高 偉1,宋宗璽1
1.中國科學院西安光學精密機械研究所,陜西 西安 710119; 2.中國科學院研究生院,北京 100039
摘要: 在空間相機數據采集應用中,為了滿足電路板體積重量以及可擴展性的要求,利用FPGA作為主控芯片,控制相機進行數據采集和傳輸。在數據通信系統中,FPGA替代了傳統的單片機作為CAN總線的主控制器,并給出了詳細的硬件電路設計方法。在對CAN協議控制器SJA1000進行功能及時序分析后,利用硬件語言對其通信流程進行設計。實踐證明,在嚴格的時序邏輯下,FPGA能夠控制CAN總線穩定正確地對相機數據進行收發。
中圖分類號:TP336  
文獻標識碼: A
文章編號: 0258-7998(2011)01-0077-03
Data communication system design in a space camera
Zhang Peikun1,2, Gao Wei1, Song Zongxi1
1. Xi’an Institute of Optics Precision Mechanics, Chinese Academy Sciences, Xi’an 710119, China; 2. Graduate School of the Chinese Academy of Sciences, Beijing 100039, China
Abstract: Data collection in a spcace camera application, to fulfil the demands of the circuit board about size, weight, and scalability, using FPGA as the main chip, control the camera for data collection and transmission. In data communication systems, FPGA replaces the traditional MCU as the main controller of the CAN communication system. And give the detailed hardware circuit design method. After analyzing the CAN protocol controller SJA1000 on function and timing demand, we design its communication flow with the hardware description language. Proctice has proved that, under strict sequential logic, FPGA is able to control the CAN bus to send and receive the camera data accurately and steadily.
Key words : space camera; data communication; CAN bus; FPGA


    CAN總線是由ISO定義的串行通信總線,主要用于各種過程檢測及控制。它是一種多主總線,具有高位速率和高抗電磁干擾性,而且能夠檢測出傳輸中產生的任何錯誤。顯著的優點使得CAN總線成為國際上應用最廣泛的現場總線標準之一 [1]。
    由于其優良的性能及獨特的設計,CAN總線已被廣泛地應用于各種分布式控制系統中。特別是由于CAN總線具有抗干擾性強、高數據傳輸率、低成本等優點,在小衛星和微小衛星中得到了越來越廣泛的應用。在衛星有效載荷數據控制傳輸中也會應用,如空間相機數據通信方面。
1 數據通信系統
    一般來說,每個CAN模塊能夠被分成三個不同的功能塊,其結構如圖1所示[2]。CAN總線收發器提供CAN協議控制器與物理總線之間的接口,控制從CAN 控制器到總線物理層或相反的邏輯電平信號。它的性能決定了總線接口、總線終端、總線長度和節點數,是影響整個總線網絡通信性能的關鍵因素之一。CAN控制器執行在CAN 規范里規定的CAN協議,它通常用于報文緩沖和驗收濾波,對外具有與主控制器和總線收發器的接口。FGPA主控制器負責執行應用的功能,例如對空間CCD相機控制命令的發送、讀取圖像數據等。它通過對CAN控制器的編程控制CAN總線的工作方式、工作狀態以及數據的發送和接收。

    在本項目的特殊環境要求下,使用FPGA作為主控芯片,控制空間相機進行數據采集與傳輸,并通過CAN總線進行數據收發。較之傳統設計使用的單片機,FPGA能夠在速度和體積上有更好的適應性。FPGA一方面減少了電路板的復雜程度,縮短了實現周期,另一方面是FPGA具有豐富的資源、超高的性能和靈活的可編程性[3],提高了整個設備的可靠性,大大增強了電路板設計的靈活性和可擴展性。
2 通信系統接口設計
   電路設計如圖2所示。SJA1000的AD0~AD7地址數據復用端口、ALE地址鎖存端口、讀使能信號RD、寫使能信號WR、片選CS端口, 均通過雙向總線收發器74ALVC164245與FPGA的I/O口相連[4]。這是因為FPGA的3.3 V的LVTTL電平不支持SJA1000的5 V TTL電平,所以利用雙向總線收發器實現兩器件信號的電平轉換。SJA1000的中斷輸出信號INT連入FPGA,這樣CAN通信就可以采用中斷或查詢兩種方式。RST端口的電路實現SJA1000的上電自動復位功能。MODE模式選擇端接+5 V,設置SJA1000控制器為Intel模式。SJA1000的時鐘晶振采用16 MHz,頻率調整電容取15 pF。設計中CAN總線的終端電阻取120Ω[5]。CAN 驅動器PCA82C250的RS腳為工作模式選擇位,接地工作于高速模式,接高工作于待機模式。系統通過電阻R將芯片設定于斜率控制模式, 電阻值為47 kΩ,這時CAN總線應工作于低速模式,可提高CAN總線抵抗射頻干擾的能力。在這種情況下,可直接使用非屏蔽雙絞線作為總線[6]。

    在接口設計中,有幾點需要注意:(1)SJA1000的INT端口是開漏輸出,所以在使用時應該加上拉電阻,不然電平一直為低,無法實現中斷方式。(2)電平信號AD0~AD7必須按順序連接在總線收發器74ALVC164245的一個8位端口上,不可分開。
3 通信系統軟件設計
3.1 系統流程設計

     CAN總線通信模塊的控制主要包括三大部分:CAN總線節點初始化、報文發送和報文接收。主流程如圖3所示。

    CAN節點主程序主要包括:作為主控制器的FPGA的初始化、CAN控制器初始化、寄存器狀態查詢、接收發送報文以及數據處理。在此設計中,由于通信模塊對接收數據的實時性要求并不是很高,因此CAN總線的接收和發送采用查詢方式[7]。在整個流程實現中,主要是對CAN控制器SJA1000中的寄存器進行讀寫操作。
3.2 讀寫流程控制
    SJA1000 的數據和地址信號為時分復用,而FPGA 中不存在地址的概念,因此在讀寫寄存器時,要把SJA1000 中的寄存器地址當作數據寫入。所以在系統的頂層模塊設計中,將設計一個讀寫子模塊來專門產生對CAN寄存器進行讀寫控制的時序,而核心主模塊則只對通信流程進行描述。讀寫時序的狀態機流程圖如圖4所示。在IDLE狀態,對接口信號進行初始化,其中地址鎖存信號ALE為低電平、寫信號WR 為高電平、讀信號RD為高電平、片選信號CS 為高電平、地址數據復用總線ADDR為高阻態、writeover和readover為低電平(writeover為高電平表示一個寫時序的完成, readover為高電平表示一個讀時序的完成) 。另外對于核心主模塊的控制信號start和iswr,當start為低電平時繼續在IDLE狀態循環,反之則進入寫地址狀態Address0、Address1。然后根據iswr信號是高電平或低電平而進入寫數據進程或讀數據進程。讀寫數據過程均由兩個狀態完成,分別是RD0、RD1、WR0、WR1。當一個完整的讀或寫操作完成時,進入IDLE狀態。每一個狀態描述了ALE、WR、RD、CS、DIR1、ADDR的變化(OE0、OE1、DIR0分別為定值0、0、1,因此未列出來)。這里為了便于描述,設1為高電平,0為低電平,對以上幾個信號在各個狀態的值進行說明,將信號組{ALE、WR、RD、CS、DIR1}設為CtrS。

    FPGA的時鐘為5 MHz,用以上狀態機來實現SJA1000 寄存器的讀寫,在設計中每個狀態占用的時間是一個周期,即200 ns。按照SJA1000 接口讀寫時序參數可知[8],片選信號必須在讀寫信號有效之前變為有效,并且讀信號有效時存儲數據總線上的數據。如此,設計的時序符合時序參數要求。其他的時序設計都要嚴格按照時序參數表來設計。
    在編寫讀寫模塊時,需注意雙向總線的編寫技巧。雙向口最好在頂層定義,否則模塊綜合時容易出錯。
3.3 INOUT雙向端口
    芯片外部引腳很多都使用inout類型的,目的是節省管腳,即一個端口同時做輸入和輸出。inout 在具體實現上一般用三態門來實現。三態門的第三個狀態就是高阻“Z”。 當inout端口不輸出時,將三態門置為高阻。這樣信號就不會因為兩端同時輸出而出錯了。本設計中地址數據復用的ADDR為8位雙向端口,使用時可以寫為:
    inout ADDR;
    wire [7:0] ADDR;
    wire [7:0] input_of_ADDR;
    wire [7:0] output_of_ADDR;
    wire en;
    assign ADDR =  (en==1)?output_of_ADDR:8'hzz ;
    assign input_of_ADDR  = ADDR;
    可見,此時input_of_ADDR和output_of_ADDR就可以當作普通信號使用了。對于雙向端口的測試用例如下:
    wire [7:0] ADDR;
    reg link;
    reg [7:0] data_in_t;
    assign ADDR=link?data_in_t:8'hzz;
    對于有inout(雙向)端口的verilog程序設計,需要注意幾點:(1)對于inout端口,要定義一個與之相連的“映像寄存器”。當inout端口作為輸出端口時,將兩者連通;而當inout端口不作為輸出端口時,要給i~t端口賦高阻態來斷開與“映像寄存器”的連接。(2)在實例化含inout(雙向)端口的模塊時,與inout端口相連的只能是一個wire類型的變量。(3)不論是模塊設計還是仿真, 由于inout端口兼有輸人端口和輸出端口的功能,所以必須分別指定當inout端口作為輸人端口(輸出端口)時,它與其他單元的連接情況和需要完成的操作。
4 實驗結果
    在FPGA中利用Verilog編程產生SJA1000的片選信號CS,地址鎖存信號ALE,讀寫信號RD、WR。這些控制信號共同驅動SJA1000進行數據接收發送,同時產生OE0、OE1、DIR0、DIR1,來控制雙向總線收發器。設計選取的是Xilinx公司Virtex系列的芯片,邏輯開發在ISE平臺上進行。在FPGA的調試階段,使用Xilinx提供的在線邏輯分析儀ChipScope pro來在線觀察FPGA設計內部信號的波形,它比傳統的邏輯分析儀更方便。圖5就是在線進行數據傳送時的波形。

    在本文空間相機通信系統的設計中,放棄了傳統的基于單片機的方法,而采用以FPGA為核心控制單元,代替單片機及其外圍芯片電路。通過設計整個空間相機通信系統的硬件電路,并利用Verilog硬件語言描述通信流程,快速準確地實現了相機數據的通信功能。在軟硬件的聯調和驗證時,利用chipscope在線邏輯儀功能,方便準確地實現了預期目的。
參考文獻
[1] 饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2007.
[2] Philips Semiconductors. Application note of SJA1000[Z]. 1997.
[3] Xilinx Inc. Product Specification:Virtex 2.5v FPGA Complete Data sheet. 2001.
[4] 陳萍.星載電場儀地面檢測設備設計與研制[D].北京:中科院研究生院,2009.
[5] 郭慧玲,劉羽,魏文.基于SJA1000的CAN總線雙機通訊技術的研究[J].儀表技術與傳感器,2008(9):46-48.
[6] Philips  Semieonduetors. PCA82C250 CAN Controller interfaee datasheet[Z]. 1997.
[7] 林志琦,宋國明. CAN總線在激光敵我識別系統中的應用[J].電子技術應用,2009,35(3):80-82.
[8] Philips Semiconductors. SJA1000 Stand-alone CAN controller[Z]. 2000.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美精品中文字幕在线| 亚洲精品系列| 亚洲电影欧美电影有声小说| 国产丝袜美腿一区二区三区| 欧美日韩中文字幕综合视频| 欧美另类高清视频在线| 欧美成人国产一区二区| 麻豆九一精品爱看视频在线观看免费 | 亚洲性图久久| 中文精品一区二区三区| 一区二区三区视频在线| 一本大道久久a久久精二百| 亚洲久久一区| 一区二区欧美在线| 宅男在线国产精品| 亚洲网站在线播放| 亚洲欧美视频在线观看| 午夜精品久久久久久久久久久久久 | 99天天综合性| 亚洲午夜久久久| 亚洲欧美日韩精品| 欧美自拍偷拍| 亚洲欧洲一区二区三区久久| 亚洲精品韩国| 99在线热播精品免费| 亚洲一区二区三区在线看| 亚洲欧美激情四射在线日 | 一区二区欧美日韩| 亚洲免费视频网站| 欧美中文字幕第一页| 久色成人在线| 欧美精彩视频一区二区三区| 欧美日韩中文字幕| 国产日韩欧美精品| 伊人一区二区三区久久精品| 亚洲精品女av网站| 一区二区三区四区国产精品| 亚洲在线观看免费视频| 久久精品国内一区二区三区| 亚洲理论电影网| 亚洲欧美日韩在线一区| 久久久噜噜噜久久狠狠50岁| 欧美国产三区| 国产精品美女www爽爽爽| 国产在线拍偷自揄拍精品| 亚洲激情av在线| 亚洲天堂av在线免费观看| 久久成人在线| 在线亚洲一区观看| 久久精品成人一区二区三区蜜臀 | 麻豆久久精品| 欧美性视频网站| 国产一区二区中文| 最新成人av在线| 亚洲欧美日韩国产一区二区| 亚洲激情欧美| 亚洲欧美中文另类| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩一区二区在线观看 | 亚洲高清精品中出| 亚洲网友自拍| 久久免费偷拍视频| 欧美日韩亚洲在线| 狠狠色2019综合网| 亚洲视频一区在线观看| 久久精品国产欧美亚洲人人爽| 一区二区国产精品| 久久久久久成人| 欧美视频在线观看一区| 樱桃国产成人精品视频| 亚洲一区二区三区在线视频| 亚洲精品视频在线看| 久久激情综合网| 欧美日韩一区二区在线视频| 在线成人激情| 亚洲免费视频中文字幕| 亚洲美女啪啪| 久久久欧美一区二区| 国产精品久久久久aaaa樱花 | 一区二区久久| 老司机午夜免费精品视频 | 亚洲精品欧洲精品| 欧美在线视频在线播放完整版免费观看 | 中文国产成人精品久久一| 亚洲国产精品一区二区久| 午夜精品久久久久久| 欧美精品一线| 韩日欧美一区二区| 亚洲欧美日韩视频二区| 亚洲视屏在线播放| 欧美成人三级在线| 国产一区二区三区日韩欧美| 亚洲一区二区三区高清| 一本色道久久综合亚洲精品高清| 麻豆精品视频在线观看视频| 国产一区91| 亚洲一区二区三区四区中文| 国产精品99久久不卡二区| 欧美高清在线| 亚洲国产成人91精品| 久久精品国产精品 | 日韩午夜电影| 亚洲精品乱码久久久久久| 老司机凹凸av亚洲导航| 国产亚洲欧洲一区高清在线观看 | 欧美日韩国产电影| 亚洲第一二三四五区| 亚洲电影在线| 久久久水蜜桃| 国外视频精品毛片| 欧美一区二区三区四区夜夜大片| 欧美在线free| 国产深夜精品福利| 午夜精彩国产免费不卡不顿大片| 亚洲免费视频在线观看| 国产精品对白刺激久久久| 日韩视频永久免费观看| 在线亚洲免费视频| 国产精品porn| 亚洲午夜未删减在线观看| 亚洲一区影院| 国产精品日本| 亚洲欧美视频| 久久精品夜色噜噜亚洲a∨| 国产日韩在线一区| 羞羞漫画18久久大片| 久久久免费观看视频| 影音先锋久久| 亚洲精品欧美激情| 欧美日韩精品三区| 一区二区三区产品免费精品久久75| 中文国产成人精品久久一| 国产精品黄页免费高清在线观看| 在线中文字幕日韩| 性欧美精品高清| 国产亚洲激情视频在线| 久久精品国产亚洲高清剧情介绍| 免播放器亚洲| 日韩视频免费观看| 午夜精品久久久久久99热| 国产日本欧美一区二区三区| 欧美在线一区二区| 欧美凹凸一区二区三区视频| 亚洲精品日韩综合观看成人91| 一级日韩一区在线观看| 国产精品久久久久久影视| 午夜国产不卡在线观看视频| 久久久一二三| 亚洲经典在线看| 亚洲综合第一页| 国产亚洲欧美一区在线观看| 亚洲人在线视频| 国产精品mv在线观看| 性久久久久久久久| 免费一级欧美片在线观看| aa级大片欧美三级| 久久国产精品久久国产精品| 一区二区三区中文在线观看| 一区二区欧美亚洲| 国产伦精品一区二区三区视频孕妇 | 裸体一区二区| 一本色道久久| 久久精品九九| 亚洲欧洲日韩综合二区| 亚洲欧美一区二区三区久久| 好看不卡的中文字幕| 制服诱惑一区二区| 国产一区二区三区免费不卡 | 国产日韩精品一区二区三区在线| 亚洲欧洲在线观看| 国产精品久久久亚洲一区| 久久都是精品| 欧美日韩理论| 欧美一区二区三区免费看| 欧美欧美全黄| 久久国产加勒比精品无码| 欧美日韩视频在线一区二区| 欧美在线观看视频一区二区三区 | 久久精品亚洲一区二区| 欧美日韩不卡合集视频| 欧美在线播放| 欧美午夜大胆人体| 亚洲国产精品精华液2区45| 欧美亚日韩国产aⅴ精品中极品| 久久精品123| 国产精品成av人在线视午夜片| 亚洲第一精品久久忘忧草社区| 欧美视频一区二区| 亚洲高清视频在线观看| 国产精品久久久免费| 亚洲乱码国产乱码精品精可以看| 国产女精品视频网站免费| 一区二区免费在线播放| 激情久久婷婷| 久久成人精品无人区| 9色国产精品| 欧美激情免费在线| 久久精品国产综合精品| 国产精品一区二区三区四区| 一区二区日韩免费看|