新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PC104總線的429接口板設計

        基于PC104總線的429接口板設計

        作者: 時間:2012-01-17 來源:網絡 收藏

        3 CPLD內部功能及實現

        本文引用地址:http://www.104case.com/article/172233.htm


        3.1 開發流程描述
          

        本系統中的CPLD使用Altera公司的MAX7000S系列可編程邏輯器件中的EPM7128SQC100-6型號,從最初的電路思想到MAX+PLUSII的波形仿真,再到CPLD芯片編程結束要經過的一般開發流程如圖4所示。


        3.2 CPLD中的模塊
          

        中CPLD 的功能是實現ARINC429收發電路與板的的數據通信。其功能模塊可以分為6部分,以下逐一介紹各模塊的功能及其實現的方法。
          

        (1)產生AR1NC429控制器HS3282所需的TTCLK時鐘信號模塊
          

        TTCLK即發射器時鐘信號,本設計中該信號有480 KHZ和1 MHZ兩種可選頻率,是由一個48 MHZ的晶振提供信號給CPLD,然后由CPLD編程產生480KHZ和1MHZ兩種信號以備選擇。該模塊用圖形編輯的方式實現。要產生3282所需要的480KHZ信號需要對輸入48MHZ信號進行兩次10分頻,要產生1 MHZ信號需要對輸入信號進行6分頻再8分頻。6分頻電路采用3個JK觸發器實現,8分頻電路采用74393實現,10分頻電路采用7490實現。
          

        (2)產生復位信號/MR和控制發射器使能信號ENTX的信號ENT模塊
        /MR是對3282的主復位信號,/MR將直接送到HS3282,而ENT將送到另一模塊中,用于控制發射器使能信號ENTX的產生,ENTX=ENT*/TXR,其中TXR為發送緩沖區空標志。該模塊也采用電路設計輸入方式。其電路主要由4個D型觸發器74LS74芯片來完成。輸入為驅動器的前4個輸出,即D0~D3,時鐘脈沖為產生HS3282讀寫信號模塊的一個輸出信號/WR3,輸出為兩個HS3282的復位信號/MR1和/MR2以及ENT1和ENT2。本模塊具體實現電路如圖5所示。

         


        (3)產生片選信號/MCS的模塊
          

        本模塊產生的/MCS信號用于驅動雙向總線驅動器,進行數據傳輸,并用于選片對HS3282進行讀寫。此模塊用一片8位判決電路74LS688來實現其功能。其中P5-P1接一組基址選擇開關,Q5~Q1分別接總線的地址總線的XA7、XA9、XA8、XA6和XA5,G接總線的地址使能信號端XAEN。只有當XAEN輸入為低時,并且P5~Pl與Q5-Q1的對應端相等時,輸出為低,才有效。
        (4)雙向總線驅動器模塊
          

        該模塊實現AR1NC429收發電路與板的接口總線PC104總線的16位數據傳輸。該模塊設計過程為,先用VHDL設計輸入方式設計兩個單向三態數據收發器,然后用電路設計輸入方式,將兩個單向數據收發器合成為一個雙向數據收發器。雙向總線驅動器模塊的功能表如表1所示。

           表1 雙向總線驅動器模塊的功能表 使能信號E 方向DIR 操作


          雙向總線驅動器模塊產生其一個單向三態數據收發器(TRI_GATE1)的VHDL語言設計如下
        library ieee;
        use ieee.std_logic_1164.all;
        entity tri_gate1 is
        port(a0,al,a2,a3:in std_ logic;
        a:in std_logic_vector(15 downto 4);
        en:in std_logic;
        b0,b1,b2,b3:out std_logic;
        b:out std_logic_vector(15 downto 4):
        D0,D1,D2,D3:out std_logic);
        --向模塊2中送數據的4個輸出端
        end tri_gatel;
        architecture behav of tri_gate1 is
        begin
        process
        begin
        if en='1' then --EN為高電平時收發器有效
        b0=a0;b1=a1;b2=a2;b3=a3;b=a;
        D0=a0;D1=a1;D2=a2;D3=a3;
        else --EN為低時高阻狀態
        b0=一Z;b1=-Z;b2=-Z ;b3='Z';b=ZZZZZZZZZZZZ;
        end if
        end process;
        end behav;


        產生另一個單向三態數據收發器(TRI_GATE)的VHDL語言與此類似,只是少了D0~D3的輸出部分。兩個單向三態數據收發器構成雙向總線驅動器的電路設計如圖6所示(D0_out~D3_out作為圖5中的D0-D3輸入)

          (5)產生HS3282讀信號與寫信號和ENTX使能信號模塊
        本模塊要實現的功能是產生HS3282的讀寫信號和發送使能信號及一個送入PC104總線的輸入輸出16位芯片選擇信號/IO16。該模塊用VHDL語言輸入,其相應的VHDL語言如下
        library ieee;
        use ieee.std logic_1164.all;
        entity gal4243 is
        port(MCS,XIOW,XIOR,A1,A2,A3,A4,ENT1,
        ENT2,TXR1,TXR2: in std_logic;
        WR0,W Rl,WR2,W R3,WR4,W R5,W R6:
        out std_logic;
        RD0,RD1,RD2,RD3,RD4:out std_logic;
        IO16,ENTX1,ENTX2:out std_logic);
        end gal4243;
        architecture behav of gal4243 is
        begin
        process



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 二连浩特市| 德惠市| 府谷县| 海安县| 榆林市| 阿拉善右旗| 聊城市| 渝北区| 萍乡市| 东阳市| 吉木萨尔县| 洪洞县| 奉节县| 旌德县| 西吉县| 崇阳县| 海淀区| 登封市| 花莲县| 蕲春县| 深水埗区| 开封市| 彭山县| 农安县| 建阳市| 临澧县| 安化县| 武穴市| 商城县| 清丰县| 奉节县| 梓潼县| 望谟县| 铜梁县| 栖霞市| 汉沽区| 黔西县| 周宁县| 锡林郭勒盟| 嫩江县| 米林县|