新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種空間相機的數據通信系統設計

        一種空間相機的數據通信系統設計

        作者: 時間:2012-07-24 來源:網絡 收藏

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

        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 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东乌珠穆沁旗| 柳林县| 维西| 汤阴县| 睢宁县| 新平| 宁都县| 崇州市| 正镶白旗| 简阳市| 延庆县| 枣强县| 夏津县| 凉山| 观塘区| 清徐县| 酉阳| 麻栗坡县| 石阡县| 惠东县| 阜南县| 抚顺县| 平罗县| 柳州市| 涡阳县| 昌江| 罗田县| 义乌市| 石嘴山市| 贺兰县| 邳州市| 汽车| 攀枝花市| 望奎县| 雷山县| 西和县| 建阳市| 西贡区| 明星| 邢台市| 根河市|