新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于CPLD的汽油機點火參數測量儀的研制

        基于CPLD的汽油機點火參數測量儀的研制

        作者: 時間:2012-10-30 來源:網絡 收藏

        1.2 控制電路的設計

        控制電路的核心為AT89C52,如圖3所示。控制電路要完成的任務是:(1)上電后,完成的配置加載。FLEX10K系列共有4種加載方式,這里采用主動串行方式,由AT89C52的引腳P1.5控制和已寫入配置數據的串行EPROM(27E512)完成配置。(2)完成采樣頻率的控制,由AT89C52控制時間合成芯片MC12429來實現,其輸出頻率為25~400MHz。每次采樣前,用戶可手動輸入采樣頻率,由AT89C52的P0.0~P0.7腳輸出M[8..1]的值,P1.0腳輸出由低到高的信號,將此值鎖存。(3)控制A/D轉換的使能。當頻率設定好后,用戶按下采樣鍵,AT89C52的P1.1輸出采樣使能信號SMEN,當采樣開始信號SMST到來后,采樣就開始進行。(4)與的通訊。圖3中,AT89C52的P0.0~P0.7與CPLD的8個I/O引腳相連,實現AT89C52與CPLD之間的數據通訊。它們之間的控制信號有讀取數據時鐘信號RDCK(P1.2)、輸入/輸出控制信號I/O(P1.3)、CPLD選通信號PLDCE(P1.4)和CPLD發出的中斷信號INT(INT0)。

        1.3 高速采集器與低速控制器的接口

        CPLD要在AT89C52的控制下完成相應的功能,必須為兩者之間建立一定的信號聯系,使CPLD能夠辨別AT89C52發出的命令并去執行相應的任務。本測量儀CPLD與CPU之間的通訊要實現的功能有:采樣頻率的確定,采樣結果的讀取,狀態信息的讀取。AT89C52輸入數據的編碼如表1所示。其中狀態信息包括:三位按鍵狀態位(0—按下,1—沒按下)、兩片AD輸入是否超出范圍狀態表示位(0—超出范圍,1—沒超出范圍)、一位采樣狀態位(0—采樣完成,1—正在采樣或沒開始采樣)。

        表1 CPLD與AT89C52之間的通訊編碼

        D7 D6 D5 D4 D3 D2 D1 D0 含 義
        X X X X X X 0 0 一分頻
        X X X X X X 0 1 二分頻
        X X X X X X 1 0 四分頻
        X X X X X X 1 1 八分頻
        0 0 0 0 X X X X 讀狀態信息
        0 0 0 1 X X X X 讀點火提高前角低8位
        0 0 1 0 X X X X 讀點火提前角第二個低8位
        0 0 1 1 X X X X 讀點火提前角高7位
        0 1 0 0 X X X X 讀轉速低8位
        0 1 0 1 X X X X 讀轉速第二個低8位
        0 1 1 0 X X X X 讀轉速第三個低8位
        0 1 1 1 X X X X 讀轉速高2位
        1 0 0 0 X X X X 讀電流低8位
        1 0 0 1 X X X X 讀電流高2位

        2 控制程序設計

        為了實時顯示點火系統的工作狀態,對于轉速和點火提前角,控制電路采用查詢的方式從CPLD取得轉速和點火提前計數器的計數值。對于點火電壓、電流數據則采用中斷方式取得,即采樣和A/D轉換完成后,CPLD向控制電路發出中斷,控制電路再通過CPLD從SRAM中取得數據。

        2.1 主程序的設計

        控制電路加電或復位后,AT89C52就開始執行主程序,流程圖如圖4所示。CPLD在上電后,配置完成前,CONF_DONE(如圖3所示)引腳被CPLD下拉為低電平。一旦CPLD配置成功,CONF_DONE引腳被CPLD釋放,由上拉電阻接到高電平。所以,控制電路加電或復位后,只要發現CONF_DONE引腳為低電平時,就對CPLD進行配置。初始化的任務是特殊功能寄存器的初始化、CPLD內觸發器的清零和置1、默認采樣頻率的設置以及液晶的初始設置。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新巴尔虎右旗| 遂平县| 宁海县| 海南省| 江孜县| 江北区| 西华县| 白河县| 全椒县| 弥渡县| 宁城县| 横峰县| 皋兰县| 白河县| 城固县| 迁安市| 凤山市| 永仁县| 社旗县| 蕉岭县| 武夷山市| 咸丰县| 滁州市| 太仆寺旗| 彭水| 湖南省| 巴林左旗| 台湾省| 常德市| 车险| 东莞市| 绍兴县| 永德县| 固镇县| 彰化市| 五大连池市| 沾益县| 临城县| 莱州市| 天门市| 垫江县|