一種與8位微處理器應(yīng)用系統(tǒng)連接的定時器ip核及其實現(xiàn)定時器定時控制的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種與8位微處理器應(yīng)用系統(tǒng)連接的定時器IP核及其實現(xiàn)定時器定 時控制的方法,尤其設(shè)及一種基于FPGA并行處理的特點,應(yīng)用FPGA設(shè)計硬連接電路組成的 能夠與8位微處理器應(yīng)用系統(tǒng)連接的定時器IP核及其用于實現(xiàn)定時器定時控制的方法。
【背景技術(shù)】
[0002] 在大規(guī)模時間順序控制或其它需要應(yīng)用眾多定時器的8位微處理器應(yīng)用系統(tǒng)中, 將使用大量的定時器,擴展定時器個數(shù)有=種實現(xiàn)方式:第一種方式是應(yīng)用微處理器中的 一個定時器的定時時間作為基準(zhǔn)時間,采用定時中斷方式編程,設(shè)置定時倍數(shù)變量,該定時 倍數(shù)變量也是擴展定時器的標(biāo)識變量,編程方法主要有2種,第1種方法是執(zhí)行一次基準(zhǔn)定 時器中斷服務(wù)函數(shù)定時倍數(shù)變量加1,并與設(shè)置的基準(zhǔn)定時倍數(shù)值比較,如果定時倍數(shù)變量 已達到設(shè)置的基準(zhǔn)定時倍數(shù)值,對定時倍數(shù)變量清0,然后執(zhí)行該擴展定時器定時時間到的 程序;或?qū)?谠O(shè)置一個擴展定時器的標(biāo)識變量,當(dāng)定時倍數(shù)變量已達到設(shè)置的基準(zhǔn)定時倍 數(shù)值時,對定時倍數(shù)變量清0,置1定時器的標(biāo)識變量,在主函數(shù)的程序中判斷該定時器的 標(biāo)識變量是否為"1",如果是,則清0該定時器的標(biāo)識變量,執(zhí)行一次該擴展定時器定時時 間到的處理函數(shù);第二種方式是微處理器與定時器擴展忍片連接,目前定時器忍片主要有 82巧4,可W擴展3個16位定時器; W上二種實現(xiàn)方式存在如下不足之處: 1. 應(yīng)用基準(zhǔn)定時器的定時中斷方法,CPU響應(yīng)和退出基準(zhǔn)定時器中斷服務(wù)程序占用 CPU運行時間;定時基準(zhǔn)時間越小,比如1ms,定時器系統(tǒng)需要擴展的定時器越多,將占用 CPU運行時間越長,對其它程序模塊的執(zhí)行速度產(chǎn)生嚴(yán)重的影響,定時精度不高; 2. 第二種方式采用微處理器外擴專用定時器忍片,所需的定時器越多,外擴專用定時 器忍片就越多,8位微處理器應(yīng)用系統(tǒng)的電路規(guī)模就越大; 第=種方式是采用不可編程的硬件定時,其每個定時器用獨立的硬件電路實現(xiàn);采用 運種方式實現(xiàn)定時功能,所需的定時器越多,電路規(guī)模就越大,且維護工作量大。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于充分應(yīng)用FPGA的并行處理功能,提供一種基于FPGA的與8位 微處理器應(yīng)用系統(tǒng)連接的定時器IP核及其用于實現(xiàn)定時器定時控制的方法,該定時器IP 核內(nèi)部有14個16位定時器,也可W應(yīng)用12個16位定時器設(shè)置成為6個32位定時器,每 個16位定時器或32位定時器輸出溢出信號,能夠編程設(shè)置口控信號控制定時器的工作,定 時器的工作模式,選擇四種定時計數(shù)的分頻倍數(shù),該定時器IP核具有定時精度高、只需要 經(jīng)過初始化編程的兩條命令設(shè)置每個定時器的工作運行方式,定時過程不占用8位微處理 器程序執(zhí)行的時間,能夠?qū)崿F(xiàn)對數(shù)量多達14個16位定時器或2個16位定時器和6個32 位定時器的定時與定時控制等優(yōu)點,W克服已有定時方式實現(xiàn)技術(shù)所存在的不足。
[0004] 為解決上述技術(shù)問題,本發(fā)明采取的技術(shù)方案是:一種與8位微處理器應(yīng)用系統(tǒng) 連接的定時器IP核,其特征在于:該定時器IP核包括數(shù)據(jù)輸入輸出與命令字分解存儲控制 模塊,脈沖12分頻器,定時處理控制模塊,定時器溢出標(biāo)志控制模塊,輸入口控選擇控制模 塊; 所述數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊與8位微處理器應(yīng)用系統(tǒng)、定時處理控 制模塊、定時器溢出標(biāo)志控制模塊和輸入口控選擇控制模塊連接; 所述脈沖12分頻器還與8位微處理器應(yīng)用系統(tǒng)和定時處理控制模塊連接; 所述定時處理控制模塊還與8位微處理器應(yīng)用系統(tǒng)、定時器溢出標(biāo)志控制模塊和輸入 口控選擇控制模塊連接; 所述數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊在輸入的片選信號為低電平的條件下, 如果寫信號有效,按照8位微處理器應(yīng)用系統(tǒng)給定的定時器或定時器命令字的地址,獲得 定時器運行的工作模式分頻倍數(shù)編碼命令字,狀態(tài)控制命令字,16位定時器或32位定時器 的定時參數(shù),并按照定時參數(shù)、定時器編號、工作模式分頻倍數(shù)編碼和狀態(tài)控制分別予W存 儲和輸出,還輸出寫工作模式分頻倍數(shù)編碼命令字信號、寫狀態(tài)控制命令字信號和寫定時 器參數(shù)信號;如果讀信號有效向8位微處理器應(yīng)用系統(tǒng)傳輸定時器實時定時值; 所述脈沖12分頻器對8位微處理器應(yīng)用系統(tǒng)的時鐘脈沖進行分頻,其輸出作為定時處 理控制模塊的定時器定時控制操作的基準(zhǔn)時鐘脈沖; 所述定時處理控制模塊在寫工作模式分頻倍數(shù)編碼命令字信號的作用下,按照定時器 編號存儲該定時器的工作模式,基準(zhǔn)時鐘分頻倍數(shù)的編碼值;在寫狀態(tài)控制命令字信號的 作用下,按照定時器編號存儲該定時器的狀態(tài)控制信號;在寫定時器參數(shù)信號的作用下,按 照定時器編號存儲該定時器的定時參數(shù);所述定時處理控制模塊定時器IP核外部輸入的 時鐘脈沖CLKII控制定時處理控制模塊的運行,按照脈沖12分頻器輸出的一個基準(zhǔn)時鐘脈 沖周期完成所有定時器的一次定時處理,包括每個定時器的狀態(tài)控制處理,工作模式的判 斷處理,按照每個16位/32位定時器設(shè)置的基準(zhǔn)時鐘倍數(shù)值對每個16位/32位定時器的 實時定時參數(shù)值進行加1操作,產(chǎn)生溢出時,對實時定時參數(shù)值自動重裝載定時參數(shù),并輸 出溢出標(biāo)志信號;在數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊輸入的片選信號為低電平的 條件下,如果讀信號有效,按照8位微處理器應(yīng)用系統(tǒng)給定的定時器的地址,直接讀出該定 時器的實時定時參數(shù)值經(jīng)數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊傳輸?shù)?位微處理器 應(yīng)用系統(tǒng)的數(shù)據(jù)總線,16位定時器的實時定時參數(shù)需要分時兩次予W讀出,32位定時器的 實時定時參數(shù)需要分時四次予W讀出;在8位微處理器應(yīng)用系統(tǒng)輸出的復(fù)位信號作用下, 停止所有定時器的定時操作; 所述定時器溢出標(biāo)志控制模塊輸出16位/32位定時器的高電平有效地溢出信號;定時 處理控制模塊輸出的16位定時器的溢出信號由低電平變換為高電平時,存儲該定時器溢 出標(biāo)志為高電平;如果該定時器溢出標(biāo)志為高電平,清溢出標(biāo)志由高電平轉(zhuǎn)換為低電平,存 儲該定時器溢出標(biāo)志為低電平;在寫工作模式分頻倍數(shù)編碼命令字信號的作用下,定時器 溢出標(biāo)志控制模塊按照寄存器編號存儲32位定時器工作模式的信息,封鎖該32位定時器 低16位的溢出信息保持為低電平; 所述輸入口控選擇控制模塊在寫工作模式分頻倍數(shù)編碼命令字信號作用下,按照定時 器編號存儲該定時器的工作模式,根據(jù)該定時器工作模式所確定的口控功能要求和輸入的 口控電平,控制輸入口控選擇控制模塊輸出的口控信號。
[0005] 其進一步技術(shù)方案是:所述數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊包括8位雙 向數(shù)據(jù)選通=態(tài)口組,讀寫信號控制模塊,定時參數(shù)寄存器,定時器編號寄存器,工作模式 分頻倍數(shù)編碼寄存器,狀態(tài)控制寄存器; 所述8位雙向數(shù)據(jù)選通=態(tài)口組分別與8位微處理器應(yīng)用系統(tǒng)、讀寫信號控制模塊、定 時參數(shù)寄存器、定時器編號寄存器,工作模式分頻倍數(shù)編碼寄存器,狀態(tài)控制寄存器和定時 處理控制模塊連接; 所述讀寫信號控制模塊還與8位微處理器應(yīng)用系統(tǒng)、定時參數(shù)寄存器、定時器編號寄 存器,工作模式分頻倍數(shù)編碼寄存器,狀態(tài)控制寄存器、定時處理控制模塊、定時器溢出標(biāo) 志控制模塊和輸入口控選擇控制模塊連接; 所述定時參數(shù)寄存器還與定時處理控制模塊連接; 所述定時器編號寄存器還與8位微處理器應(yīng)用系統(tǒng)、定時處理控制模塊、定時器溢出 標(biāo)志控制模塊和輸入口控選擇控制模塊連接; 所述工作模式分頻倍數(shù)編碼寄存器還與8位微處理器應(yīng)用系統(tǒng)、定時處理控制模塊、 定時器溢出標(biāo)志控制模塊和輸入口控選擇控制模塊連接; 所述狀態(tài)控制寄存器還與8位微處理器應(yīng)用系統(tǒng)、定時處理控制模塊和定時器溢出標(biāo) 志控制模塊連接; 所述數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊的讀寫信號控制模塊在片選信號為低 電平的條件下,如果寫信號有效,發(fā)出8位雙向數(shù)據(jù)選通=態(tài)口組寫信號,選通8位微處理 器應(yīng)用系統(tǒng)數(shù)據(jù)總線的數(shù)據(jù)輸入;產(chǎn)生寫定時器編號信號,并判斷輸入的地址值,如果是定 時器參數(shù)的地址值,將該地址值寫入定時器編號寄存器,產(chǎn)生寫定時器參數(shù)信號,將數(shù)據(jù)總 線的數(shù)據(jù)寫入定時參數(shù)寄存器;如果是定時器命令字地址,將數(shù)據(jù)總線的第2位~第5位數(shù) 據(jù)寫入定時器編號寄存器,命令字地址是0邸或0FH,設(shè)置第3位定時器編號值S3為0,否 則設(shè)置為1 ;如果是命令字低8位地址,則命令字是工作模式分頻倍數(shù)編碼命令字,產(chǎn)生寫 工作模式分頻倍數(shù)編碼命令字信號,將數(shù)據(jù)總線的第0位、第1位、第6位和第7位寫入工 作模式分頻倍數(shù)編碼寄存器;如果是命令字高8位地址,則命令字是狀態(tài)控制命令字,產(chǎn)生 寫狀態(tài)控制命令字信號,將數(shù)據(jù)總線的第0位、第1位和第7位寫入狀態(tài)控制寄存器;如果 讀信號有效,發(fā)出8位雙向數(shù)據(jù)選通=態(tài)口組讀信號,將定時處理控制模塊的定時器IP核 內(nèi)部輸出數(shù)據(jù)總線的數(shù)據(jù)傳輸?shù)?位微處理器應(yīng)用系統(tǒng)的數(shù)據(jù)總線。
[0006] 其更進一步技術(shù)方案是:所述定時處理控制模塊包括定時器定時控制操作模塊, 地址選通控制I,8位定時參數(shù)雙端口存儲器,地址選通控制II,8位定時實時參數(shù)雙端口 存儲器,地址選通控制III,4位工作模式分頻倍數(shù)編碼雙端口存儲器,地址選通控制IV,3位 狀態(tài)控制雙端口存儲器; 所述定時器定時控制操作模塊分別與脈沖12分頻器、定時器溢出標(biāo)志控制模塊、定時 器溢出標(biāo)志控制模塊、地址選通控制I、8位定時參數(shù)雙端口存儲器、地址選通控制II、8位 定時實時參數(shù)雙端口存儲器、地址選通控制111、4位工作模式分頻倍數(shù)編碼雙端口存儲器、 地址選通控制IV、3位狀態(tài)控制雙端口存儲器和定時器器IP核外部輸入的定時處理控制運 行時鐘脈沖CLKII連接; 所述地址選通控制I還與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊和8位定時參數(shù) 雙端口存儲器連接; 所述8位定時參數(shù)雙端口存儲器還與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊和8位 定時實時參數(shù)雙端口存儲器連接. 所述地址選通控制II還與8位微處理器應(yīng)用系統(tǒng)、數(shù)據(jù)輸入輸出與命令字分解存儲控 制模塊和8位定時實時參數(shù)雙端口存儲器連接; 所述8位定時實時參數(shù)雙端口存儲器還與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊 連接; 所述地址選通控制III還與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊和4位工作模式 分頻倍數(shù)編碼雙端口存儲器連接; 所述4位工作模式分頻倍數(shù)編碼雙端口存儲器還與數(shù)據(jù)輸入輸出與命令字分解存儲 控制模塊連接; 所述地址選通控制IV還與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊和3位狀態(tài)控制 雙端口存儲器連接; 所述3位狀態(tài)控制雙端口存儲器還與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊、8位 微處理器應(yīng)用系統(tǒng)的復(fù)位信號連接;如果輸入的復(fù)位信號為有效的復(fù)位信號,復(fù)位3位狀 態(tài)控制雙端口存儲器,停止所有定時器的定時操作。
[0007] 其再進一步技術(shù)方案是:所述定時器溢出標(biāo)志控制模塊包括非n,M0工作模式位 寄存器組,溢出清零脈沖控制器,與非口I,D觸發(fā)器I,與口I,與非口II,D觸發(fā)器II,與 非口III,D觸發(fā)器III,與口II,與非口IV,D觸發(fā)器IV,與非口V,D觸發(fā)器V,與口III,與非口 VI,D觸發(fā)器VI,與非口W,D觸發(fā)器W,與非口W,D觸發(fā)器W,與口IV,與非口IX,D觸發(fā)器 IX,與非口x,D觸發(fā)器X,與口V,與非口劉,〇觸發(fā)器劉,與非口XLD觸發(fā)器xn,與口VI,與 非口XIII,D觸發(fā)器XIII,與非口XIV,D觸發(fā)器XIV; 所述非口的輸入端與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊的狀態(tài)控制寄存器的M0輸出端連接,輸出端與M0工作模式位寄存器組的一個輸入端連接; M0工作模式位寄存器組的另=個輸入端分別與8位微處理器應(yīng)用系統(tǒng)的復(fù)位信號輸 出端、數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊的讀寫信號控制模塊的寫工作模式分頻倍 數(shù)編碼命令字信號輸出端和定時器編號寄存器的定時器編號輸出端連接,輸出端分別與口 I、與口II、與口III、與口IV、與口V、與口VI的一個輸入端連接; 溢出清零脈沖控制器的=個輸入端分別與數(shù)據(jù)輸入輸出與命令字分解存儲控制模塊 的讀寫信號控制模塊的寫狀態(tài)控制命令字信號輸出端、狀態(tài)控制寄存器的清溢出標(biāo)志輸出 端和定時器編號寄存器的定時器編號輸出端連接,輸出端分別與非口I、與非口II、與非口 III、與非口IV、與非口V、與非口VI、與非口W、與非口W、與非口IX、與非口X、與非口劉、與 非口xn、與非口XIII、與非口XIV的一個輸入端連接;輸出端還與D觸發(fā)器I、D觸發(fā)器II、D 觸發(fā)器I