當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]標(biāo)簽:FPGA CAN總線在空間相機(jī)數(shù)據(jù)采集應(yīng)用中,為了滿足電路板體積重量以及可擴(kuò)展性的要求,利用FPGA作為主控芯片,控制相機(jī)進(jìn)行數(shù)據(jù)采集和傳輸。在數(shù)據(jù)通信系統(tǒng)中,F(xiàn)PGA替代了傳統(tǒng)的單片機(jī)作為CAN總線的主控制器,

標(biāo)簽:FPGA  CAN總線

空間相機(jī)數(shù)據(jù)采集應(yīng)用中,為了滿足電路板體積重量以及可擴(kuò)展性的要求,利用FPGA作為主控芯片,控制相機(jī)進(jìn)行數(shù)據(jù)采集和傳輸。在數(shù)據(jù)通信系統(tǒng)中,F(xiàn)PGA替代了傳統(tǒng)的單片機(jī)作為CAN總線的主控制器,并給出了詳細(xì)的硬件電路設(shè)計(jì)方法。在對CAN協(xié)議控制器SJA1000進(jìn)行功能及時(shí)序分析后,利用硬件語言對其通信流程進(jìn)行設(shè)計(jì)。實(shí)踐證明,在嚴(yán)格的時(shí)序邏輯下,F(xiàn)PGA能夠控制CAN總線穩(wěn)定正確地對相機(jī)數(shù)據(jù)進(jìn)行收發(fā)。

CAN總線是由ISO定義的串行通信總線,主要用于各種過程檢測及控制。它是一種多主總線,具有高位速率和高抗電磁干擾性,而且能夠檢測出傳輸中產(chǎn)生的任何錯(cuò)誤。顯著的優(yōu)點(diǎn)使得CAN總線成為國際上應(yīng)用最廣泛的現(xiàn)場總線標(biāo)準(zhǔn)之一 [1]。

由于其優(yōu)良的性能及獨(dú)特的設(shè)計(jì),CAN總線已被廣泛地應(yīng)用于各種分布式控制系統(tǒng)中。特別是由于CAN總線具有抗干擾性強(qiáng)、高數(shù)據(jù)傳輸率、低成本等優(yōu)點(diǎn),在小衛(wèi)星和微小衛(wèi)星中得到了越來越廣泛的應(yīng)用。在衛(wèi)星有效載荷數(shù)據(jù)控制傳輸中也會(huì)應(yīng)用,如空間相機(jī)數(shù)據(jù)通信方面。

1 數(shù)據(jù)通信系統(tǒng)

一般來說,每個(gè)CAN模塊能夠被分成三個(gè)不同的功能塊,其結(jié)構(gòu)如圖1所示[2]。CAN總線收發(fā)器提供CAN協(xié)議控制器與物理總線之間的接口,控制從CAN 控制器到總線物理層或相反的邏輯電平信號。它的性能決定了總線接口、總線終端、總線長度和節(jié)點(diǎn)數(shù),是影響整個(gè)總線網(wǎng)絡(luò)通信性能的關(guān)鍵因素之一。CAN控制器執(zhí)行在CAN 規(guī)范里規(guī)定的CAN協(xié)議,它通常用于報(bào)文緩沖和驗(yàn)收濾波,對外具有與主控制器和總線收發(fā)器的接口。FGPA主控制器負(fù)責(zé)執(zhí)行應(yīng)用的功能,例如對空間CCD相機(jī)控制命令的發(fā)送、讀取圖像數(shù)據(jù)等。它通過對CAN控制器的編程控制CAN總線的工作方式、工作狀態(tài)以及數(shù)據(jù)的發(fā)送和接收。

在本項(xiàng)目的特殊環(huán)境要求下,使用FPGA作為主控芯片,控制空間相機(jī)進(jìn)行數(shù)據(jù)采集與傳輸,并通過CAN總線進(jìn)行數(shù)據(jù)收發(fā)。較之傳統(tǒng)設(shè)計(jì)使用的單片機(jī),F(xiàn)PGA能夠在速度和體積上有更好的適應(yīng)性。FPGA一方面減少了電路板的復(fù)雜程度,縮短了實(shí)現(xiàn)周期,另一方面是FPGA具有豐富的資源、超高的性能和靈活的可編程性[3],提高了整個(gè)設(shè)備的可靠性,大大增強(qiáng)了電路板設(shè)計(jì)的靈活性和可擴(kuò)展性。

2 通信系統(tǒng)接口設(shè)計(jì)

電路設(shè)計(jì)如圖2所示。SJA1000的AD0~AD7地址數(shù)據(jù)復(fù)用端口、ALE地址鎖存端口、讀使能信號RD、寫使能信號WR、片選CS端口, 均通過雙向總線收發(fā)器74ALVC164245與FPGA的I/O口相連[4]。這是因?yàn)镕PGA的3.3 V的LVTTL電平不支持SJA1000的5 V TTL電平,所以利用雙向總線收發(fā)器實(shí)現(xiàn)兩器件信號的電平轉(zhuǎn)換。SJA1000的中斷輸出信號INT連入FPGA,這樣CAN通信就可以采用中斷或查詢兩種方式。RST端口的電路實(shí)現(xiàn)SJA1000的上電自動(dòng)復(fù)位功能。MODE模式選擇端接+5 V,設(shè)置SJA1000控制器為Intel模式。SJA1000的時(shí)鐘晶振采用16 MHz,頻率調(diào)整電容取15 pF。設(shè)計(jì)中CAN總線的終端電阻取120Ω[5]。CAN 驅(qū)動(dòng)器PCA82C250的RS腳為工作模式選擇位,接地工作于高速模式,接高工作于待機(jī)模式。系統(tǒng)通過電阻R將芯片設(shè)定于斜率控制模式, 電阻值為47 kΩ,這時(shí)CAN總線應(yīng)工作于低速模式,可提高CAN總線抵抗射頻干擾的能力。在這種情況下,可直接使用非屏蔽雙絞線作為總線[6]。

在接口設(shè)計(jì)中,有幾點(diǎn)需要注意:(1)SJA1000的INT端口是開漏輸出,所以在使用時(shí)應(yīng)該加上拉電阻,不然電平一直為低,無法實(shí)現(xiàn)中斷方式。(2)電平信號AD0~AD7必須按順序連接在總線收發(fā)器74ALVC164245的一個(gè)8位端口上,不可分開。

3 通信系統(tǒng)軟件設(shè)計(jì)

3.1 系統(tǒng)流程設(shè)計(jì)

CAN總線通信模塊的控制主要包括三大部分:CAN總線節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。主流程如圖3所示。

CAN節(jié)點(diǎn)主程序主要包括:作為主控制器的FPGA的初始化、CAN控制器初始化、寄存器狀態(tài)查詢、接收發(fā)送報(bào)文以及數(shù)據(jù)處理。在此設(shè)計(jì)中,由于通信模塊對接收數(shù)據(jù)的實(shí)時(shí)性要求并不是很高,因此CAN總線的接收和發(fā)送采用查詢方式[7]。在整個(gè)流程實(shí)現(xiàn)中,主要是對CAN控制器SJA1000中的寄存器進(jìn)行讀寫操作。

3.2 讀寫流程控制

SJA1000 的數(shù)據(jù)和地址信號為時(shí)分復(fù)用,而FPGA 中不存在地址的概念,因此在讀寫寄存器時(shí),要把SJA1000 中的寄存器地址當(dāng)作數(shù)據(jù)寫入。所以在系統(tǒng)的頂層模塊設(shè)計(jì)中,將設(shè)計(jì)一個(gè)讀寫子模塊來專門產(chǎn)生對CAN寄存器進(jìn)行讀寫控制的時(shí)序,而核心主模塊則只對通信流程進(jìn)行描述。讀寫時(shí)序的狀態(tài)機(jī)流程圖如圖4所示。在IDLE狀態(tài),對接口信號進(jìn)行初始化,其中地址鎖存信號ALE為低電平、寫信號WR 為高電平、讀信號RD為高電平、片選信號CS 為高電平、地址數(shù)據(jù)復(fù)用總線ADDR為高阻態(tài)、writeover和readover為低電平(writeover為高電平表示一個(gè)寫時(shí)序的完成, readover為高電平表示一個(gè)讀時(shí)序的完成) 。另外對于核心主模塊的控制信號start和iswr,當(dāng)start為低電平時(shí)繼續(xù)在IDLE狀態(tài)循環(huán),反之則進(jìn)入寫地址狀態(tài)Address0、Address1。然后根據(jù)iswr信號是高電平或低電平而進(jìn)入寫數(shù)據(jù)進(jìn)程或讀數(shù)據(jù)進(jìn)程。讀寫數(shù)據(jù)過程均由兩個(gè)狀態(tài)完成,分別是RD0、RD1、WR0、WR1。當(dāng)一個(gè)完整的讀或?qū)懖僮魍瓿蓵r(shí),進(jìn)入IDLE狀態(tài)。每一個(gè)狀態(tài)描述了ALE、WR、RD、CS、DIR1、ADDR的變化(OE0、OE1、DIR0分別為定值0、0、1,因此未列出來)。這里為了便于描述,設(shè)1為高電平,0為低電平,對以上幾個(gè)信號在各個(gè)狀態(tài)的值進(jìn)行說明,將信號組{ALE、WR、RD、CS、DIR1}設(shè)為CtrS。

FPGA的時(shí)鐘為5 MHz,用以上狀態(tài)機(jī)來實(shí)現(xiàn)SJA1000 寄存器的讀寫,在設(shè)計(jì)中每個(gè)狀態(tài)占用的時(shí)間是一個(gè)周期,即200 ns。按照SJA1000 接口讀寫時(shí)序參數(shù)可知[8],片選信號必須在讀寫信號有效之前變?yōu)橛行?,并且讀信號有效時(shí)存儲(chǔ)數(shù)據(jù)總線上的數(shù)據(jù)。如此,設(shè)計(jì)的時(shí)序符合時(shí)序參數(shù)要求。其他的時(shí)序設(shè)計(jì)都要嚴(yán)格按照時(shí)序參數(shù)表來設(shè)計(jì)。

在編寫讀寫模塊時(shí),需注意雙向總線的編寫技巧。雙向口最好在頂層定義,否則模塊綜合時(shí)容易出錯(cuò)。

3.3 INOUT雙向端口

芯片外部引腳很多都使用inout類型的,目的是節(jié)省管腳,即一個(gè)端口同時(shí)做輸入和輸出。inout 在具體實(shí)現(xiàn)上一般用三態(tài)門來實(shí)現(xiàn)。三態(tài)門的第三個(gè)狀態(tài)就是高阻“Z”。 當(dāng)inout端口不輸出時(shí),將三態(tài)門置為高阻。這樣信號就不會(huì)因?yàn)閮啥送瑫r(shí)輸出而出錯(cuò)了。本設(shè)計(jì)中地址數(shù)據(jù)復(fù)用的ADDR為8位雙向端口,使用時(shí)可以寫為:

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;

可見,此時(shí)input_of_ADDR和output_of_ADDR就可以當(dāng)作普通信號使用了。對于雙向端口的測試用例如下:

wire [7:0] ADDR;

reg link;

reg [7:0] data_in_t;

assign ADDR=link?data_in_t:8'hzz;

對于有inout(雙向)端口的verilog程序設(shè)計(jì),需要注意幾點(diǎn):(1)對于inout端口,要定義一個(gè)與之相連的“映像寄存器”。當(dāng)inout端口作為輸出端口時(shí),將兩者連通;而當(dāng)inout端口不作為輸出端口時(shí),要給i~t端口賦高阻態(tài)來斷開與“映像寄存器”的連接。(2)在實(shí)例化含inout(雙向)端口的模塊時(shí),與inout端口相連的只能是一個(gè)wire類型的變量。(3)不論是模塊設(shè)計(jì)還是仿真, 由于inout端口兼有輸人端口和輸出端口的功能,所以必須分別指定當(dāng)inout端口作為輸人端口(輸出端口)時(shí),它與其他單元的連接情況和需要完成的操作。

4 實(shí)驗(yàn)結(jié)果

在FPGA中利用Verilog編程產(chǎn)生SJA1000的片選信號CS,地址鎖存信號ALE,讀寫信號RD、WR。這些控制信號共同驅(qū)動(dòng)SJA1000進(jìn)行數(shù)據(jù)接收發(fā)送,同時(shí)產(chǎn)生OE0、OE1、DIR0、DIR1,來控制雙向總線收發(fā)器。設(shè)計(jì)選取的是Xilinx公司Virtex系列的芯片,邏輯開發(fā)在ISE平臺(tái)上進(jìn)行。在FPGA的調(diào)試階段,使用Xilinx提供的在線邏輯分析儀ChipScope pro來在線觀察FPGA設(shè)計(jì)內(nèi)部信號的波形,它比傳統(tǒng)的邏輯分析儀更方便。圖5就是在線進(jìn)行數(shù)據(jù)傳送時(shí)的波形。

數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)" width="450" height="172" />

在本文空間相機(jī)通信系統(tǒng)的設(shè)計(jì)中,放棄了傳統(tǒng)的基于單片機(jī)的方法,而采用以FPGA為核心控制單元,代替單片機(jī)及其外圍芯片電路。通過設(shè)計(jì)整個(gè)空間相機(jī)通信系統(tǒng)的硬件電路,并利用Verilog硬件語言描述通信流程,快速準(zhǔn)確地實(shí)現(xiàn)了相機(jī)數(shù)據(jù)的通信功能。在軟硬件的聯(lián)調(diào)和驗(yàn)證時(shí),利用chipscope在線邏輯儀功能,方便準(zhǔn)確地實(shí)現(xiàn)了預(yù)期目的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉