一種空間相機的數據通信系統設計
在編寫(xiě)讀寫(xiě)模塊時(shí),需注意雙向總線(xiàn)的編寫(xiě)技巧。雙向口最好在頂層定義,否則模塊綜合時(shí)容易出錯。
3.3 INOUT雙向端口
芯片外部引腳很多都使用inout類(lèi)型的,目的是節省管腳,即一個(gè)端口同時(shí)做輸入和輸出。inout 在具體實(shí)現上一般用三態(tài)門(mén)來(lái)實(shí)現。三態(tài)門(mén)的第三個(gè)狀態(tài)就是高阻“Z”。 當inout端口不輸出時(shí),將三態(tài)門(mén)置為高阻。這樣信號就不會(huì )因為兩端同時(shí)輸出而出錯了。本設計中地址數據復用的ADDR為8位雙向端口,使用時(shí)可以寫(xiě)為:
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;
可見(jiàn),此時(shí)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程序設計,需要注意幾點(diǎn):(1)對于inout端口,要定義一個(gè)與之相連的“映像寄存器”。當inout端口作為輸出端口時(shí),將兩者連通;而當inout端口不作為輸出端口時(shí),要給i~t端口賦高阻態(tài)來(lái)斷開(kāi)與“映像寄存器”的連接。(2)在實(shí)例化含inout(雙向)端口的模塊時(shí),與inout端口相連的只能是一個(gè)wire類(lèi)型的變量。(3)不論是模塊設計還是仿真, 由于inout端口兼有輸人端口和輸出端口的功能,所以必須分別指定當inout端口作為輸人端口(輸出端口)時(shí),它與其他單元的連接情況和需要完成的操作。
4 實(shí)驗結果
在FPGA中利用Verilog編程產(chǎn)生SJA1000的片選信號CS,地址鎖存信號ALE,讀寫(xiě)信號RD、WR。這些控制信號共同驅動(dòng)SJA1000進(jìn)行數據接收發(fā)送,同時(shí)產(chǎn)生OE0、OE1、DIR0、DIR1,來(lái)控制雙向總線(xiàn)收發(fā)器。設計選取的是Xilinx公司Virtex系列的芯片,邏輯開(kāi)發(fā)在ISE平臺上進(jìn)行。在FPGA的調試階段,使用Xilinx提供的在線(xiàn)邏輯分析儀ChipScope pro來(lái)在線(xiàn)觀(guān)察FPGA設計內部信號的波形,它比傳統的邏輯分析儀更方便。圖5就是在線(xiàn)進(jìn)行數據傳送時(shí)的波形。
在本文空間相機通信系統的設計中,放棄了傳統的基于單片機的方法,而采用以FPGA為核心控制單元,代替單片機及其外圍芯片電路。通過(guò)設計整個(gè)空間相機通信系統的硬件電路,并利用Verilog硬件語(yǔ)言描述通信流程,快速準確地實(shí)現了相機數據的通信功能。在軟硬件的聯(lián)調和驗證時(shí),利用chipscope在線(xiàn)邏輯儀功能,方便準確地實(shí)現了預期目的。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
上拉電阻相關(guān)文章:上拉電阻原理 雙絞線(xiàn)傳輸器相關(guān)文章:雙絞線(xiàn)傳輸器原理
評論