亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Arm+fpga組成的定時(shí)器裝置及其實(shí)現(xiàn)方法

文檔序號(hào):6328483閱讀:288來(lái)源:國(guó)知局
專利名稱:Arm+fpga組成的定時(shí)器裝置及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種定時(shí)器裝置及定時(shí)方法,尤其涉及一種用于大規(guī)模時(shí)間控制裝置或可編程控制器(PLC)的定時(shí)器裝置及其實(shí)現(xiàn)方法。
背景技術(shù)
在大規(guī)模時(shí)間控制或可編程控制器(PLC)的應(yīng)用系統(tǒng)中,將使用大量的定時(shí)器,通常實(shí)現(xiàn)的方式有五種第一、二種方式是應(yīng)用微處理器中的一個(gè)定時(shí)器的定時(shí)時(shí)間作為基準(zhǔn)時(shí)間,每個(gè)定時(shí)器的定時(shí)參數(shù)存儲(chǔ)在一個(gè)存儲(chǔ)單元中,采用定時(shí)中斷方式編程,編程方法主要有2種,第1種方法是在基準(zhǔn)定時(shí)器中斷服務(wù)程序中編制定時(shí)器判斷處理程序,該基準(zhǔn)定時(shí)器按照基準(zhǔn)時(shí)間定時(shí)發(fā)出中斷的信號(hào),在基準(zhǔn)定時(shí)器中斷服務(wù)程序中,定時(shí)器判斷處理程序?qū)γ總€(gè)定時(shí)器進(jìn)行判斷,對(duì)于未啟動(dòng)和未使用的定時(shí)器,程序執(zhí)行跳過(guò)該定時(shí)器的處理程序,對(duì)于已啟動(dòng)定時(shí)的定時(shí)器對(duì)應(yīng)的存儲(chǔ)單元內(nèi)容減1,再判斷是否已減為0,如果不為0,在下次執(zhí)行基準(zhǔn)定時(shí)器中斷服務(wù)程序中再減1,并進(jìn)行判斷;如果定時(shí)器對(duì)應(yīng)的存儲(chǔ)單元內(nèi)容已減為0,表示該定時(shí)器的定時(shí)時(shí)間已到,設(shè)置該定時(shí)器定時(shí)時(shí)間到的標(biāo)志, 并恢復(fù)該定時(shí)器的存儲(chǔ)單元的定時(shí)參數(shù)。第2種方法是在定時(shí)中斷服務(wù)程序中設(shè)置已中斷的標(biāo)志,在主程序中執(zhí)行查詢程序,首先檢測(cè)中斷標(biāo)志,如果沒(méi)有基準(zhǔn)定時(shí)器的中斷標(biāo)志, 則程序執(zhí)行跳過(guò)定時(shí)器判斷處理程序,如果有基準(zhǔn)定時(shí)器的中斷標(biāo)志,執(zhí)行定時(shí)器判斷處理程序,其程序與第一種基本相同,在執(zhí)行完定時(shí)器判斷處理程序后,將基準(zhǔn)定時(shí)器的中斷標(biāo)志清0 ;第三、四種方式是采用微處理器外擴(kuò)專用定時(shí)器芯片,也有2種方法——即中斷或查詢方法,第1種中斷方法的中斷信號(hào)與CPU外部中斷引腳連接,編制定時(shí)器判斷處理程序;第2種查詢方法的外擴(kuò)專用定時(shí)器芯片的定時(shí)器輸出與CPU的I/O引腳連接,程序循環(huán)讀取該引腳的信號(hào),如果沒(méi)有檢測(cè)到基準(zhǔn)定時(shí)時(shí)間到的信息,則程序執(zhí)行跳過(guò)定時(shí)器判斷處理程序,如果檢測(cè)到基準(zhǔn)定時(shí)時(shí)間到的信息,則執(zhí)行一次定時(shí)器判斷處理程序。以上四種實(shí)現(xiàn)方式存在如下不足之處
1、無(wú)論某個(gè)定時(shí)器在用戶程序中是否被使用,在定時(shí)器判斷處理程序中都需要對(duì)每個(gè)定時(shí)器的工作狀態(tài)進(jìn)行一次判斷,對(duì)已啟動(dòng)定時(shí)工作的定時(shí)器每次執(zhí)行定時(shí)器判斷處理程序還需要執(zhí)行一次計(jì)數(shù),一次判斷,一次狀態(tài)設(shè)置指令;
2、應(yīng)用基準(zhǔn)定時(shí)器的定時(shí)中斷方法,CPU響應(yīng)和退出基準(zhǔn)定時(shí)器中斷服務(wù)程序占用 CPU運(yùn)行時(shí)間;第四種方式的查詢方法雖然不需要響應(yīng)和退出中斷操作,但系統(tǒng)程序循環(huán)一次需要查詢和判斷一次;定時(shí)基準(zhǔn)時(shí)間越小,比如1ms,定時(shí)器系統(tǒng)的定時(shí)器越多,將占用CPU運(yùn)行時(shí)間越長(zhǎng),對(duì)其它程序模塊的執(zhí)行速度產(chǎn)生嚴(yán)重的影響,定時(shí)精度不高;
3、第三、四種方式采用微處理器外擴(kuò)專用定時(shí)器芯片,所需的定時(shí)器越多,外擴(kuò)專用定時(shí)器芯片就越多,電路規(guī)模就越大;
第五種方式是采用不可編程的硬件定時(shí),其每個(gè)定時(shí)器用獨(dú)立的硬件電路實(shí)現(xiàn);采用這種方式實(shí)現(xiàn)定時(shí)功能,所需的定時(shí)器越多,電路規(guī)模就越大,且維護(hù)工作量大。

發(fā)明內(nèi)容
本發(fā)明的目的在于充分應(yīng)用FPGA的并行處理功能,提供一種以嵌入式ARM微處理器為控制模塊、FPGA為定時(shí)處理模塊的ARM+FPGA定時(shí)器裝置及其實(shí)現(xiàn)方法,該裝置具有定時(shí)精度高、運(yùn)行控制基本不占用ARM程序執(zhí)行的時(shí)間,能夠?qū)崿F(xiàn)對(duì)數(shù)量眾多定時(shí)器的定時(shí)與定時(shí)控制等優(yōu)點(diǎn),以克服已有定時(shí)方式實(shí)現(xiàn)技術(shù)所存在的不足。為解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是一種ARM+FPGA組成的定時(shí)器裝置,所述定時(shí)器裝置以嵌入式ARM微處理器為控制核心、以FPGA進(jìn)行定時(shí)處理,包括
ARM控制模塊、存儲(chǔ)器模塊、FPGA定時(shí)器模塊、雙口 RAM模塊和電源模塊,ARM控制模塊分別與存儲(chǔ)器模塊和雙口 RAM模塊連接,F(xiàn)PGA定時(shí)器模塊與雙口 RAM模塊連接;
所述ARM控制模塊以嵌入式ARM微處理器為控制核心,構(gòu)建嵌入式實(shí)時(shí)操作系統(tǒng),進(jìn)行多任務(wù)管理和通信管理,實(shí)現(xiàn)對(duì)定時(shí)器裝置中各模塊及其信息的處理和控制;
所述存儲(chǔ)器模塊用于存儲(chǔ)操作系統(tǒng)及嵌入式ARM微處理器程序的目標(biāo)代碼映像文件、 執(zhí)行用戶程序的處理信息、以及為定時(shí)器裝置的運(yùn)行和通信數(shù)據(jù)處理提供空間;
所述雙口 RAM模塊分別與所述FPGA定時(shí)器模塊和所述ARM控制模塊連接,以實(shí)現(xiàn)所述 ARM控制模塊與所述FPGA定時(shí)器模塊之間的數(shù)據(jù)傳輸;
所述FPGA定時(shí)器模塊以定時(shí)控制單元為核心,通過(guò)雙口 RAM模塊從ARM控制模塊獲得定時(shí)器運(yùn)行和定時(shí)時(shí)間參數(shù)的信息或停止運(yùn)行信息,在基準(zhǔn)時(shí)鐘周期工作脈沖的作用下, 對(duì)定時(shí)器存儲(chǔ)單元內(nèi)容進(jìn)行循環(huán)讀取、判斷、處理,實(shí)現(xiàn)定時(shí)器功能;
所述電源模塊為ARM控制模塊、存儲(chǔ)器模塊、雙口 RAM模塊和FPGA定時(shí)器模塊提供變壓后的電源。其進(jìn)一步的技術(shù)方案是所述ARM控制模塊包括嵌入式ARM微處理器、人機(jī)交互電路、控制電路、復(fù)位電路、JTAG調(diào)試接口電路,嵌入式ARM微處理器作為控制核心,分別與人機(jī)交互電路、控制電路、復(fù)位電路和JTAG調(diào)試接口電路連接;
ARM控制模塊在嵌入式ARM微處理器中構(gòu)建嵌入式實(shí)時(shí)操作系統(tǒng),進(jìn)行多任務(wù)管理和通信管理,實(shí)現(xiàn)對(duì)ARM控制模塊和FPGA定時(shí)器模塊各種信息的處理和控制;
人機(jī)交互電路完成ARM控制模塊和FPGA定時(shí)器模塊的控制命令、控制參數(shù)的輸入;以及ARM控制模塊和FPGA定時(shí)器模塊各種參數(shù)的人機(jī)界面控制; 控制電路完成ARM控制模塊的數(shù)據(jù)采集與控制驅(qū)動(dòng); 復(fù)位電路為ARM控制模塊電路提供復(fù)位信號(hào);
JTAG調(diào)試接口電路提供調(diào)試接口與外接電路相連實(shí)現(xiàn)編程裝置對(duì)ARM控制模塊的硬件和軟件的調(diào)試。所述存儲(chǔ)器模塊包括Nor FLASH存儲(chǔ)器、Nand FLASH存儲(chǔ)器和SDRAM存儲(chǔ)器,Nor FLASH存儲(chǔ)器、Nand FLASH存儲(chǔ)器和SDRAM存儲(chǔ)器分別通過(guò)ARM控制模塊的數(shù)據(jù)總線、地址總線和控制總線與ARM控制模塊的嵌入式ARM微處理器連接,實(shí)現(xiàn)ARM微處理器對(duì)存儲(chǔ)器的操作控制,Nor FLASH存儲(chǔ)器用來(lái)存儲(chǔ)操作系統(tǒng)及嵌入式ARM微處理器程序的目標(biāo)代碼映像文件,Nand FLASH存儲(chǔ)器存放執(zhí)行用戶程序的處理信息,以及失電需要保持的信息,包括定時(shí)器裝置處理的信息,SDRAM存儲(chǔ)器為ARM控制模塊運(yùn)行和通信數(shù)據(jù)處理提供空間,包括定時(shí)器裝置處理的信息。所述FPGA定時(shí)器模塊包括時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器、定時(shí)單元和定時(shí)控制單元;定時(shí)控制單元是FPGA定時(shí)器模塊的控制核心,分別與時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器和定時(shí)單元連接,F(xiàn)PGA定時(shí)器模塊通過(guò)定時(shí)控制單元與雙口 RAM模塊連接,并通過(guò)雙口 RAM模塊與 ARM控制模塊連接;
所述時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器產(chǎn)生定時(shí)需要的基準(zhǔn)時(shí)鐘周期工作脈沖; 所述定時(shí)單元是由32位字長(zhǎng)存儲(chǔ)單元組成的定時(shí)存儲(chǔ)器,包括多個(gè)Ims定時(shí)器存儲(chǔ)單元、IOms定時(shí)器存儲(chǔ)單元、IOOms定時(shí)器存儲(chǔ)單元和定時(shí)器軟觸頭存儲(chǔ)單元;
所述定時(shí)控制單元通過(guò)雙口 RAM模塊從ARM控制模塊獲得定時(shí)器運(yùn)行和定時(shí)時(shí)間參數(shù)的信息或停止運(yùn)行信息,在基準(zhǔn)時(shí)鐘周期工作脈沖的作用下,定時(shí)控制單元對(duì)定時(shí)單元的存儲(chǔ)單元內(nèi)容進(jìn)行循環(huán)讀取判斷,如果定時(shí)單元中該定時(shí)器的定時(shí)參數(shù)等于或大于雙口 RAM模塊中的該定時(shí)器的定時(shí)參數(shù)時(shí),設(shè)置運(yùn)行狀態(tài)標(biāo)志,置位定時(shí)器軟觸頭存儲(chǔ)單元該定時(shí)器軟觸頭的位單元,清定時(shí)單元中該定時(shí)器的定時(shí)單元內(nèi)容;如果小于定時(shí)單元中該定時(shí)器的定時(shí)參數(shù)則進(jìn)行加1操作,設(shè)置運(yùn)行狀態(tài)標(biāo)志,以及設(shè)置定時(shí)器軟觸頭存儲(chǔ)單元的該定時(shí)器軟觸頭的位單元狀態(tài);其循環(huán)讀取判斷操作是按照時(shí)間基準(zhǔn)周期循環(huán)操作一次, 并將定時(shí)器軟觸頭存儲(chǔ)單元的內(nèi)容傳輸?shù)诫p口 RAM模塊中。所述雙口 RAM模塊通過(guò)ARM控制模塊的一組數(shù)據(jù)總線、地址總線和控制總線與ARM 控制模塊的嵌入式ARM微處理器連接,雙口 RAM模塊還通過(guò)FPGA定時(shí)器模塊與雙口 RAM 模塊之間另一組數(shù)據(jù)總線、地址總線和控制總線與FPGA定時(shí)器模塊連接;雙口 RAM模塊是 ARM控制模塊與FPGA定時(shí)器模塊之間數(shù)據(jù)傳輸?shù)臉蛄海軌驅(qū)崿F(xiàn)ARM控制模塊和FPGA定時(shí)器模塊同時(shí)對(duì)雙口 RAM模塊進(jìn)行操作;ARM控制模塊在執(zhí)行大規(guī)模時(shí)間順序邏輯控制程序或可編程控制器用戶程序的編譯程序時(shí),將每個(gè)定時(shí)器的定時(shí)參數(shù)傳輸?shù)诫p口 RAM模塊相對(duì)應(yīng)的存儲(chǔ)單元中;在執(zhí)行大規(guī)模時(shí)間順序邏輯控制程序或可編程控制器用戶程序時(shí), 當(dāng)定時(shí)器滿足定時(shí)運(yùn)行的條件下,ARM控制模塊向雙口 RAM模塊傳輸運(yùn)行狀態(tài)信息,當(dāng)定時(shí)器不滿足運(yùn)行的條件下,ARM控制模塊向雙口 RAM模塊傳輸停止運(yùn)行信息;當(dāng)大規(guī)模時(shí)間順序邏輯控制程序或可編程控制器用戶程序讀取定時(shí)器軟元件觸頭信息時(shí),ARM控制模塊從雙口 RAM模塊讀取該觸頭狀態(tài)信息。其更進(jìn)一步的技術(shù)方案是所述雙口 RAM模塊與FPGA定時(shí)器模塊或者是分別獨(dú)立的兩個(gè)模塊;或者是所述雙口 RAM模塊嵌入構(gòu)成FPGA定時(shí)器模塊的FPGA2中,所述FPGA2 模塊是一塊同時(shí)帶有雙口 RAM模塊和FPGA定時(shí)器模塊結(jié)構(gòu)的模塊。其相關(guān)的另一技術(shù)方案是一種應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法,該方法是以ARM控制模塊中的嵌入式ARM微處理器為控制核心、以FPGA定時(shí)器模塊進(jìn)行定時(shí)控制處理,用雙口 RAM模塊作為ARM控制模塊與FPGA定時(shí)器模塊之間數(shù)據(jù)傳輸?shù)臉蛄海瑢?shí)現(xiàn)數(shù)據(jù)通信;在嵌入式ARM微處理器初始化處理過(guò)程中,對(duì)雙口 RAM的每個(gè)存儲(chǔ)單元清零和FPGA中的定時(shí)單元清零;
ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將用戶程序使用的每個(gè)編號(hào)定時(shí)器設(shè)置的定時(shí)參數(shù)以及使用狀態(tài)信息傳輸?shù)诫p口 RAM模塊中,ARM控制模塊執(zhí)行用戶程序某一個(gè)編號(hào)定時(shí)器的輸出時(shí),將該編號(hào)定時(shí)器的運(yùn)行狀態(tài)信息傳輸?shù)诫p口 RAM模塊中;ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將檢測(cè)該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取指令按照編譯出現(xiàn)這類指令出現(xiàn)的先后順序?qū)⒃摼幪?hào)定時(shí)器的編號(hào)傳輸給雙口 RAM ; 由所述ARM控制模塊處理的狀態(tài)信息具體包括D31 使用標(biāo)志位,該編號(hào)定時(shí)器在用戶程序中被使用,設(shè)置為“1”,否則為“0”; D30 該編號(hào)定時(shí)器軟元件得電失電標(biāo)志位,得電設(shè)置為“1”,否則為“0”; D27 DO 該編號(hào)定時(shí)器的定時(shí)參數(shù)設(shè)置值; 由所述FPGA定時(shí)器模塊處理設(shè)置的狀態(tài)信息包括 D29 定時(shí)工作標(biāo)志位,正在進(jìn)行定時(shí)操作設(shè)置為“ 1 ”,否則為“0” D28 定時(shí)維持標(biāo)志位定時(shí)時(shí)間已到,該編號(hào)定時(shí)器軟元件仍然得電設(shè)置為“1”,否則為 “0”。所述應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法的進(jìn)一步技術(shù)方案是 ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,嵌入式ARM微處理器編譯用戶程序?qū)δ骋粋€(gè)編號(hào)定時(shí)器處理操作的具體步驟為
slOl 判斷是否是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令?如果是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,則進(jìn)入步驟sl02,如果不是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,則進(jìn)入步驟 sl06 ;
sl02 如果是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,獲得并判斷該定時(shí)器軟元件的編號(hào)
值,
若編號(hào)值的屬于“200 255”的范圍,則進(jìn)入步驟sl05, 若編號(hào)值的屬于“100 199”的范圍,則進(jìn)入步驟sl03, 若編號(hào)值的屬于“000 099”的范圍,則進(jìn)入步驟sl04 ;
定時(shí)器軟元件的編號(hào)值為“20(Γ255”的范圍內(nèi),Ims為最小定時(shí)時(shí)間單位的定時(shí)器;定時(shí)器軟元件的編號(hào)值為“10(Γ199”的范圍內(nèi),IOms為最小定時(shí)時(shí)間單位的定時(shí)器;定時(shí)器軟元件的編號(hào)值為“00(Γ099”的范圍內(nèi),IOOms為最小定時(shí)時(shí)間單位的定時(shí)器;
sl03 將該編號(hào)定時(shí)器的定時(shí)設(shè)置值擴(kuò)大10倍,使得IOms為最小定時(shí)時(shí)間單位的定時(shí)器在FPGA定時(shí)器模塊中以Ims為最小定時(shí)時(shí)間單位;
sl04 將該編號(hào)定時(shí)器的定時(shí)設(shè)置值擴(kuò)大100倍,使得IOOms為最小定時(shí)時(shí)間單位的定時(shí)器在FPGA定時(shí)器模塊中以Ims為最小定時(shí)時(shí)間單位;
sl05 根據(jù)該編號(hào)定時(shí)器軟元件的編號(hào)將定時(shí)設(shè)置值傳輸給雙口 RAM該定時(shí)器參數(shù)的存儲(chǔ)單元;
sloe 繼續(xù)按順序編譯其他指令;
S107 判斷是否是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令?如果是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令,則進(jìn)入步驟S108,如果不是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令,則進(jìn)入步驟sl09;
sl08 按照編譯該編號(hào)定時(shí)器的先后順序?qū)⒃摱〞r(shí)器的編號(hào)傳輸給雙口 RAM后進(jìn)入 sl09 ;
sl09 繼續(xù)按順序編譯其他指令。所述ARM控制模塊在用戶程序執(zhí)行過(guò)程中通過(guò)對(duì)雙口 RAM的操作實(shí)現(xiàn)對(duì)FPGA定時(shí)器的控制,具體包括
ARM控制模塊處理包括雙口 RAM模塊操作控制,通過(guò)對(duì)雙口 RAM的控制實(shí)現(xiàn)FPGA定時(shí)器模塊的控制;其中,ARM控制模塊通過(guò)ARM控制模塊的一組數(shù)據(jù)總線、地址總線和控制總線從雙口 RAM讀取、寫(xiě)入信息以實(shí)現(xiàn)對(duì)雙口 RAM模塊的控制,ARM控制模塊向雙口 RAM模塊傳輸運(yùn)行狀態(tài)命令,以對(duì)FPGA定時(shí)器發(fā)送控制命令,ARM控制模塊從雙口 RAM模塊讀取定時(shí)器實(shí)時(shí)定時(shí)參數(shù)和觸頭存儲(chǔ)區(qū)讀入定時(shí)器的觸頭信息,用戶程序應(yīng)用其觸頭狀態(tài)信息進(jìn)行邏輯運(yùn)算和判斷處理;
FPGA定時(shí)器模塊控制處理包括定時(shí)器控制、定時(shí)器動(dòng)態(tài)參數(shù)傳輸控制;FPGA定時(shí)器模塊的定時(shí)器控制單元是采用循環(huán)處理定時(shí)器信息的方式,從ARM控制模塊發(fā)送給雙口 RAM模塊的信息獲得控制信息,根據(jù)定時(shí)器的運(yùn)行參數(shù)執(zhí)行對(duì)所有的定時(shí)器的控制處理; 所述ARM控制模塊對(duì)FPGA定時(shí)器控制的具體步驟為 s201 執(zhí)行該編號(hào)定時(shí)器軟元件輸出指令;
s202 判斷該編號(hào)定時(shí)器軟元件是否得電?如果該編號(hào)定時(shí)器軟元件得電,則進(jìn)入步驟s203,如果該編號(hào)定時(shí)器軟元件未得電,則進(jìn)入步驟s205 ; s203 從雙口 RAM讀入該編號(hào)定時(shí)器的32位信息; s204 設(shè)置標(biāo)志位D31,D30為“11”,并進(jìn)入s207 ; s205 從雙口 RAM讀入該編號(hào)定時(shí)器的32位信息; s206 設(shè)置標(biāo)志位D31,D30為“10” ; s207 將該編號(hào)定時(shí)器的D3fD0的信息發(fā)送到雙口 RAM ;
s208 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指
令;
s209 執(zhí)行該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀出指令;
s210 判斷是否滿足該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取條件?如果滿足讀取該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)條件,則進(jìn)入步驟s211,如果不滿足讀取該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)條件, 則進(jìn)入步驟s212 ;
s211 從雙口 RAM該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)存儲(chǔ)區(qū)讀入該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)參數(shù)值,并進(jìn)入s212;
S212 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指
令;
s213:執(zhí)行某編號(hào)定時(shí)器觸頭讀出指令,將該編號(hào)定時(shí)器編號(hào)除以32取整+0100H獲得該編號(hào)定時(shí)器觸頭信息在雙口 RAM的地址,從雙口 RAM中讀入該編號(hào)定時(shí)器觸頭信息所在的存儲(chǔ)單元內(nèi)容;
s214 將該編號(hào)定時(shí)器編號(hào)除以32取余,其值為該定時(shí)器觸頭信息所在存儲(chǔ)單元的位單元位數(shù),從該定時(shí)器觸頭信息所在的存儲(chǔ)單元中取該位信息; s215 執(zhí)行該編號(hào)定時(shí)器觸頭參與運(yùn)算的指令;
s216 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指令。 所述FPGA定時(shí)器模塊控制處理中,定時(shí)控制單元對(duì)所有定時(shí)器控制的具體步驟如下
s301 清定時(shí)器單元地址計(jì)數(shù)器和溢出位標(biāo)志TF ;
s302 =Ims基準(zhǔn)時(shí)鐘周期工作脈沖上升沿觸發(fā)程序執(zhí)行1次;從步驟s303 步驟s316 是循環(huán)處理所有定時(shí)器的程序,每循環(huán)一次處理一個(gè)編號(hào)定時(shí)器的操作,直到設(shè)置的每個(gè)編號(hào)定時(shí)器被處理一次,其執(zhí)行過(guò)程是在FPGA模塊的基準(zhǔn)時(shí)鐘周期工作脈沖作用下執(zhí)行;s303 按照定時(shí)器單元地址計(jì)數(shù)器的值從雙口 RAM讀取某一個(gè)編號(hào)定時(shí)器32位長(zhǎng)度存儲(chǔ)單元內(nèi)容,即讀出32位字長(zhǎng)的某一個(gè)編號(hào)定時(shí)器信息; s304 獲得并判斷標(biāo)志位D31、D30、D29和擬8的位值
若 D31、D30、D29 和 D28 為 “OX X X ”、“ 1000”、“ 1001 ”、“ 1010” 或“ 1011 ”,則進(jìn)入步驟 s305,
若 D31、D30、D29 和 D28 為 “1100 ”或 “ 1101 ”,則進(jìn)入步驟 s306, 若D31、D30、^9和擬8為“ 1110”,則進(jìn)入步驟s307, 若 D31、D30、D29 和 D28 為 “ 1111,,則進(jìn)入步驟 s315 ;
若D31、D30、擬9和擬8為“OX X X ”,則說(shuō)明該編號(hào)定時(shí)器在用戶程序中沒(méi)有被使用, 若D31、D30、D29和D28為“ 1000”或“ 1001 ”或“ 1010”或“ 1011 ”,說(shuō)明該編號(hào)定時(shí)器軟元件處于失電狀態(tài),
若D31、D30、擬9和擬8為“ 1100 ”或“ 1101”,則說(shuō)明該編號(hào)定時(shí)器軟元件處于由失電進(jìn)入得電狀態(tài),
若D31、D30、D^和擬8為“ 1110”說(shuō)明該編號(hào)定時(shí)器軟元件處于得電定時(shí)狀態(tài),但定時(shí)時(shí)間未到,
若D31、D30、擬9和擬8為“ 1111”說(shuō)明該編號(hào)定時(shí)器定時(shí)已到,且該編號(hào)定時(shí)器軟元件仍然處于得電狀態(tài);
s305 清該編號(hào)定時(shí)器的觸頭位單元為“0”,并進(jìn)入步驟s308 ; s306 設(shè)置該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬9位為“1”,并進(jìn)入步驟s310 ;
s307 判斷該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO是否大于或等于雙口 RAM模塊該定時(shí)器的D27 DO內(nèi)容?如果大于或等于進(jìn)入步驟s312,否則,進(jìn)入步驟s311 ;
s308 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D29、D28單元設(shè)置為 “00”;
s309 清該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的DO D27為“0”,進(jìn)入步驟 s315 ;
s310 清該編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元的觸頭位單元為“0”; s311 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO進(jìn)行+1操作后再傳回D27 DO ;
s312 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬8位單元設(shè)置為“1” ; s313 置該編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元的觸頭位單元為“1”; s314 清該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO為全0 ; s315 將該編號(hào)定時(shí)器單元地址計(jì)數(shù)器+1 ;
s316 判斷定時(shí)器單元地址計(jì)數(shù)器的溢出位TF是否為1 ?如果是,則進(jìn)入步驟s317, 否則,進(jìn)入步驟s303 ;TF為定時(shí)器單元地址計(jì)數(shù)器溢出標(biāo)志位;
s317 循環(huán)將每一個(gè)編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元內(nèi)容傳輸給雙口 RAM觸頭存儲(chǔ)單元;
s318 循環(huán)將每一個(gè)編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D29、擬8設(shè)置值傳輸給雙口 RAM中各對(duì)應(yīng)編號(hào)定時(shí)器定時(shí)參數(shù)存儲(chǔ)單元的D29、D^位;
s319 置TF8單元為0108H,置TF9單元為0200H,0108H是雙口 RAM模塊中定時(shí)器的編號(hào)存儲(chǔ)區(qū)起始地址,0200H是雙口 RAM模塊中定時(shí)器的實(shí)時(shí)參數(shù)值存儲(chǔ)區(qū)起始地址;
s320 根據(jù)TF8單元內(nèi)容指向的雙口 RAM的定時(shí)器編號(hào)存儲(chǔ)區(qū)讀入該編號(hào)定時(shí)器軟元件編號(hào);
s321 判斷該編號(hào)定時(shí)器編號(hào)是否等于FFFHl ?如果相等則進(jìn)入步驟s301,否則進(jìn)入步驟s322 ;
s322 根據(jù)該編號(hào)定時(shí)器編號(hào)從FPGA中定時(shí)單元中的參數(shù)存儲(chǔ)單元讀出D27 DO的參數(shù);
s323 判斷該編號(hào)定時(shí)器軟元件編號(hào)的值,若該編號(hào)定時(shí)器軟元件編號(hào)在200 255 范圍內(nèi),則進(jìn)入步驟,若該編號(hào)定時(shí)器軟元件編號(hào)在100 199范圍內(nèi),則進(jìn)入步驟 s324,若該編號(hào)定時(shí)器軟元件編號(hào)在000 099范圍內(nèi),則進(jìn)入步驟s325 ; s324 將該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)值縮小十倍; s325 將該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)值縮小百倍;
s326 根據(jù)TF8單元的值將該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)傳輸?shù)絋F9單元內(nèi)容指向的雙口 RAM該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)的存儲(chǔ)單元; s327 :TF8+1 — TF8, TF9+1 — TF9。本發(fā)明之ARM+FPGA組成的定時(shí)器裝置及其實(shí)現(xiàn)定時(shí)器的方法具有以下有益效果
1、定時(shí)精度高
本發(fā)明FPGA定時(shí)器模塊IV的時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器41采用晶體振蕩器產(chǎn)生的脈沖作為FPGA的基準(zhǔn)時(shí)鐘周期工作脈沖,其頻率穩(wěn)定,時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器輸出的脈沖周期精度高,F(xiàn)PGA在基準(zhǔn)時(shí)鐘周期工作脈沖作用下運(yùn)行,能夠確保在一個(gè)基準(zhǔn)時(shí)鐘周期工作脈沖的周期內(nèi)完成對(duì)所有定時(shí)器的計(jì)數(shù)、判斷和數(shù)據(jù)傳輸?shù)膱?zhí)行,能夠確保其高精度的定時(shí)。2、定時(shí)器運(yùn)行不占用ARM用戶程序執(zhí)行的時(shí)間
ARM控制模塊I對(duì)用戶程序沒(méi)有使用的定時(shí)器不需要作任何操作,對(duì)于用戶使用的每個(gè)定時(shí)器,當(dāng)程序執(zhí)行某個(gè)定時(shí)器軟元件輸出指令時(shí),判斷該定時(shí)器的工作狀態(tài),然后從雙口 RAM模塊該定時(shí)器參數(shù)存儲(chǔ)單元中讀入該定時(shí)器參數(shù)到ARM控制模塊I中,設(shè)置運(yùn)行狀態(tài)標(biāo)志,再傳輸?shù)诫p口 RAM模塊該定時(shí)器參數(shù)存儲(chǔ)單元中,ARM用戶程序執(zhí)行時(shí),相當(dāng)于將每個(gè)定時(shí)器只進(jìn)行讀寫(xiě)和判斷操作;另一方面,定時(shí)器的定時(shí)運(yùn)行操作、定時(shí)器軟觸頭狀態(tài)的設(shè)置由FPGA定時(shí)器模塊IV完成,不占用ARM程序執(zhí)行的時(shí)間,而且既無(wú)中斷響應(yīng)和中斷返回時(shí)間,也不需要對(duì)用戶程序沒(méi)有使用的定時(shí)器作任何操作。3、適合需要數(shù)量眾多定時(shí)器定時(shí)與定時(shí)控制的系統(tǒng)需求
本發(fā)明除ARM控制模塊I對(duì)雙口 RAM模塊定時(shí)器參數(shù)存儲(chǔ)單元進(jìn)行讀寫(xiě)和判斷操作之外,將不占用ARM的程序執(zhí)行時(shí)間;只要FPGA定時(shí)器模塊IV在滿足時(shí)間基準(zhǔn)時(shí)鐘周期內(nèi)能夠完成對(duì)FPGA定時(shí)器模塊IV中的所有定時(shí)器的計(jì)數(shù)、判斷和數(shù)據(jù)向雙口 RAM模塊傳輸?shù)牟僮?,其定時(shí)器裝置設(shè)置的定時(shí)器數(shù)量能夠達(dá)到數(shù)百個(gè),乃至千余個(gè),且定時(shí)精度高,而且不需要在ARM的程序中編制定時(shí)中斷服務(wù)程序,只是將每個(gè)定時(shí)器作為普通存儲(chǔ)單元進(jìn)行讀寫(xiě)和判斷操作,適合需要數(shù)量眾多定時(shí)器定時(shí)與定時(shí)控制的系統(tǒng)需求,以及對(duì)定時(shí)精度要求很高的系統(tǒng),尤其適應(yīng)于大規(guī)模時(shí)間控制裝置或可編程控制器(PLC)控制系統(tǒng)。4、FPGA并行處理定時(shí),裝置性價(jià)比高
本發(fā)明以嵌入式ARM微處理器為控制模塊,F(xiàn)PGA為定時(shí)處理模塊構(gòu)成ARM+FPGA定時(shí)器裝置,無(wú)論定時(shí)器裝置有多少編號(hào)定時(shí)器,定時(shí)器基準(zhǔn)時(shí)間為多少,占用嵌入式ARM微處理器的用戶程序執(zhí)行的時(shí)間大為減少的,將其用于開(kāi)發(fā)大規(guī)模的并行運(yùn)算的邏輯運(yùn)算器及其控制器以及大規(guī)模的定時(shí)器和計(jì)時(shí)器,可獲很高的性價(jià)比。下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明之ARM+FPGA組成的定時(shí)器裝置及其實(shí)現(xiàn)定時(shí)器的方法的技術(shù)特征作進(jìn)一步的說(shuō)明。


圖1 本發(fā)明之ARM+FPGA組成的定時(shí)器裝置的結(jié)構(gòu)框圖2 本發(fā)明實(shí)施例一之ARM+FPGA組成的定時(shí)器裝置的電路框圖; 圖3 本發(fā)明實(shí)施例一之ARM+FPGA組成的定時(shí)器裝置的FPGA定時(shí)器部件結(jié)構(gòu)圖; 圖4 本發(fā)明之ARM+FPGA組成的定時(shí)器裝置的定時(shí)器之32位長(zhǎng)度的存儲(chǔ)單元; 圖5 本發(fā)明之ARM+FPGA組成的定時(shí)器裝置的雙口 RAM模塊存儲(chǔ)區(qū)分配; 圖6 實(shí)施例二之ARM+FPGA組成的定時(shí)器裝置的結(jié)構(gòu)框圖; 圖7 實(shí)施例二之ARM+FPGA組成的定時(shí)器裝置的電路框圖; 圖8 本發(fā)明實(shí)施例二之ARM+FPGA組成的定時(shí)器裝置的FPGA定時(shí)器部件結(jié)構(gòu)圖; 圖9 本發(fā)明之應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法中,ARM控制模塊編譯用戶程序?qū)δ骋粋€(gè)編號(hào)定時(shí)器處理操作流程圖10 本發(fā)明之應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法中,ARM控制模塊對(duì)某一個(gè)編號(hào)定時(shí)器處理操作流程圖11 本發(fā)明之應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法中,定時(shí)控制單元對(duì)所有定時(shí)器控制的流程圖。圖中
I一ARM控制模塊,10—嵌入式ARM微處理器,11 一人機(jī)交互電路,12—控制電路,13— 復(fù)位電路,14—JTAG調(diào)試接口電路;
II一存儲(chǔ)器模塊,21—Nor FLASH存儲(chǔ)器,22—Nand FLASH存儲(chǔ)器,23—SDRAM存儲(chǔ)器; III一雙口 RAM模塊,III a—實(shí)施例一的雙口 RAM模塊,III b—實(shí)施例二的雙口 RAM模塊;
IV-FPGA定時(shí)器模塊,IVb—實(shí)施例一的FPGA定時(shí)器模塊,IV b—實(shí)施例二的FPGA定時(shí)器模塊;
41 一時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器,42—定時(shí)單元,421 — Ims定時(shí)器存儲(chǔ)單元,422— IOms定時(shí)器存儲(chǔ)單元,423— IOOms定時(shí)器存儲(chǔ)單元,424—定時(shí)器軟觸頭存儲(chǔ)單元,43—定時(shí)控制單元;
V—電源模塊;其余編號(hào)意義參見(jiàn)說(shuō)明書(shū)實(shí)施例。文中縮略語(yǔ)意義
PLC Programmable Logical Controller,可編程邏輯控制器,簡(jiǎn)稱可編程控制器; ARM =Advanced RISC Machines,一種微處理器;FPGA 現(xiàn)場(chǎng)可編程門陣列,是在原PAL、GAL、CPLD基礎(chǔ)上發(fā)展的產(chǎn)物,是作為專用集成電路(ASIC)領(lǐng)域中的一種未定制電路,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn);
Nor FLASH 一種非易失閃存技術(shù),Nor FLASH存儲(chǔ)器指采用Nor FLASH技術(shù)的閃存存儲(chǔ)器;
Nand FLASH 一種非易失閃存技術(shù),Nand FLASH存儲(chǔ)器指采用Nand FLASH技術(shù)的閃存存儲(chǔ)器;
SDRAM =Synchronous Dynamic Random Access Memory,SDRAM 存儲(chǔ)器為同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器;
JTAG Joint Test Action Group,一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議。
具體實(shí)施例方式實(shí)施例一
一種ARM+FPGA組成的定時(shí)器裝置,如圖1所示,所述定時(shí)器裝置包括ARM控制模塊I、 存儲(chǔ)器模塊II、FPGA定時(shí)器模塊IV、雙口 RAM模塊III和電源模塊V ;ARM控制模塊I分別與存儲(chǔ)器模塊II和雙口 RAM模塊III連接,F(xiàn)PGA定時(shí)器模塊IV與雙口 RAM模塊III連接,電源模塊 V將外部電源通過(guò)電壓電路轉(zhuǎn)換成為合乎要求的電壓,為ARM控制模塊I、存儲(chǔ)器模塊II、 雙口 RAM模塊III和FPGA定時(shí)器模塊IV提供變壓后直流電源;
如圖2所示,所述ARM控制模塊I包括嵌入式ARM微處理器10、人機(jī)交互電路11、控制電路12、復(fù)位電路13、JTAG調(diào)試接口電路14,嵌入式ARM微處理器10作為控制核心,分別與人機(jī)交互電路11、控制電路12、復(fù)位電路13和JTAG調(diào)試接口電路14連接;
ARM控制模塊I在嵌入式ARM微處理器10中構(gòu)建嵌入式實(shí)時(shí)操作系統(tǒng),進(jìn)行多任務(wù)管理和通信管理,實(shí)現(xiàn)對(duì)ARM控制模塊I和FPGA定時(shí)器模塊IV中的各種信息處理和控制;
人機(jī)交互電路11完成ARM控制模塊I和FPGA定時(shí)器模塊IV的控制命令、控制傳輸?shù)妮斎?;以及ARM控制模塊I和FPGA定時(shí)器模塊IV各種參數(shù)的人機(jī)界面控制; 控制電路12完成ARM控制模塊I的數(shù)據(jù)采集與控制驅(qū)動(dòng); 復(fù)位電路13為ARM控制模塊I電路提供復(fù)位信號(hào);
JTAG調(diào)試接口電路14提供調(diào)試接口與外接電路相連實(shí)現(xiàn)編程裝置對(duì)ARM控制模塊I 的硬件和軟件的調(diào)試。所述存儲(chǔ)器模塊II包括Nor FLASH存儲(chǔ)器21、Nand FLASH存儲(chǔ)器22和SDRAM存儲(chǔ)器23,Nor FLASH存儲(chǔ)器21、Nand FLASH存儲(chǔ)器22和SDRAM存儲(chǔ)器23分別通過(guò)ARM控制模塊I的數(shù)據(jù)總線XI、地址總線Zl和控制總線Yl與ARM控制模塊I的嵌入式ARM微處理器10連接,實(shí)現(xiàn)ARM微處理器對(duì)存儲(chǔ)器的操作控制,Nor FLASH存儲(chǔ)器21用來(lái)存儲(chǔ)操作系統(tǒng)及嵌入式ARM微處理器10程序的目標(biāo)代碼映像文件,Nand FLASH存儲(chǔ)器22存放執(zhí)行用戶程序的處理信息,以及失電需要保持的信息,包括定時(shí)器裝置處理的信息,SDRAM存儲(chǔ)器23為ARM控制模塊I運(yùn)行和通信數(shù)據(jù)處理提供空間,包括定時(shí)器裝置處理的信息。如圖3所示,所述FPGA定時(shí)器模塊IV包括時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器41、定時(shí)單元 42和定時(shí)控制單元43 ;FPGA定時(shí)器模塊IV采用晶體振蕩器產(chǎn)生的脈沖作為FPGA的工作周期時(shí)鐘脈沖,晶體振蕩器產(chǎn)生的工作周期時(shí)鐘脈沖與時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器41和定時(shí)控制單元43連接,時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器41與定時(shí)控制單元43連接作為基準(zhǔn)時(shí)鐘周期工作脈沖,定時(shí)控制單元43是FPGA定時(shí)器模塊的控制核心,分別與工作周期時(shí)鐘脈沖、時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器41和定時(shí)單元42連接,F(xiàn)PGA定時(shí)器模塊IV通過(guò)定時(shí)控制單元43與雙口 RAM模塊III連接,并通過(guò)雙口 RAM模塊III與ARM控制模塊I連接;
時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器41產(chǎn)生定時(shí)需要的基準(zhǔn)時(shí)鐘周期工作脈沖,本實(shí)施例中, FPGA定時(shí)器模塊IV采用晶體振蕩器產(chǎn)生的脈沖作為FPGA的基準(zhǔn)時(shí)鐘周期工作脈沖;
定時(shí)單元42是由32位字長(zhǎng)存儲(chǔ)單元組成的定時(shí)存儲(chǔ)器,包括多個(gè)Ims定時(shí)器存儲(chǔ)單元421、IOms定時(shí)器存儲(chǔ)單元422、IOOms定時(shí)器存儲(chǔ)單元423和定時(shí)器軟觸頭存儲(chǔ)單元 424 ;
定時(shí)控制單元43通過(guò)雙口 RAM模塊III從ARM控制模塊I獲得定時(shí)器運(yùn)行和定時(shí)時(shí)間參數(shù)的信息或停止運(yùn)行信息,在工作周期時(shí)鐘脈沖的作用下,對(duì)定時(shí)器定時(shí)單元42的存儲(chǔ)單元內(nèi)容進(jìn)行循環(huán)讀取判斷,如果定時(shí)單元42中該定時(shí)器的定時(shí)參數(shù)等于或大于雙口 RAM 模塊III中的該定時(shí)器的定時(shí)參數(shù)時(shí),設(shè)置運(yùn)行狀態(tài)標(biāo)志,置位定時(shí)器軟觸頭存儲(chǔ)單元4M 該定時(shí)器軟觸頭的位單元,清定時(shí)單元42中該定時(shí)器的定時(shí)單元內(nèi)容;如果小于定時(shí)單元 42中該定時(shí)器的定時(shí)參數(shù)則進(jìn)行加1操作,設(shè)置運(yùn)行狀態(tài)標(biāo)志,以及設(shè)置定時(shí)器軟觸頭存儲(chǔ)單元424的該定時(shí)器軟觸頭的位單元狀態(tài);其循環(huán)讀取判斷操作是按照時(shí)間基準(zhǔn)周期循環(huán)操作一次,并將定時(shí)器軟觸頭存儲(chǔ)單元424的內(nèi)容傳輸?shù)诫p口 RAM模塊III中。所述雙口 RAM模塊III通過(guò)ARM控制模塊I的一組數(shù)據(jù)總線X1(D0 D31 )、地址總線Zl (AO A12)和控制總線Yl (包括寫(xiě)、讀、片選)與ARM控制模塊I的嵌入式ARM微處理器10連接,雙口 RAM模塊III還通過(guò)FPGA定時(shí)器模塊IV與雙口 RAM模塊III之間的另一組數(shù)據(jù)總線X2 (DO D31)、地址總線Z2 (AO A12)和控制總線Y2 (包括寫(xiě)、讀、片選)與 FPGA定時(shí)器模塊IV連接;
雙口 RAM模塊III是ARM控制模塊I與FPGA定時(shí)器模塊IV之間數(shù)據(jù)傳輸?shù)臉蛄?,能夠?qū)崿F(xiàn)ARM控制模塊I和FPGA定時(shí)器模塊IV同時(shí)對(duì)雙口 RAM模塊III進(jìn)行操作;ARM控制模塊 I在執(zhí)行大規(guī)模時(shí)間控制程序或可編程控制器用戶程序的編譯程序時(shí),將每個(gè)定時(shí)器的定時(shí)參數(shù)傳輸?shù)诫p口 RAM模塊III相對(duì)應(yīng)的存儲(chǔ)單元中,在執(zhí)行大規(guī)模時(shí)間控制程序或可編程控制器用戶程序時(shí),當(dāng)定時(shí)器滿足定時(shí)運(yùn)行的條件下,ARM控制模塊I向雙口 RAM模塊III傳輸運(yùn)行狀態(tài)信息,當(dāng)定時(shí)器不滿足運(yùn)行的條件下,ARM控制模塊I向雙口 RAM模塊III傳輸停止運(yùn)行信息,當(dāng)大規(guī)模時(shí)間控制程序或可編程控制器用戶程序讀取定時(shí)器軟元件觸頭信息時(shí),ARM控制模塊I從雙口 RAM模塊III讀取該觸頭狀態(tài)信息。實(shí)施例二
一種ARM+FPGA組成的定時(shí)器裝置,其基本結(jié)構(gòu)與實(shí)施例一相同,也是以嵌入式ARM微處理器為控制模塊、FPGA為定時(shí)處理模塊,包括ARM控制模塊I、存儲(chǔ)器模塊II、FPGA定時(shí)器模塊IV、雙口 RAM模塊III和電源模塊V ;ARM控制模塊I分別與存儲(chǔ)器模塊II和雙口 RAM 模塊III連接,F(xiàn)PGA定時(shí)器模塊IV與雙口 RAM模塊III連接,電源模塊V為ARM控制模塊I、存儲(chǔ)器模塊II、雙口 RAM模塊III和FPGA定時(shí)器模塊IV提供電源;本實(shí)施例二與實(shí)施例一不同之處是實(shí)施例一中,雙口 RAM模塊III與由FPGAl構(gòu)成的定時(shí)器模塊IV是獨(dú)立的兩個(gè)模塊; 而本實(shí)施例中,所述雙口 RAM模塊III嵌入構(gòu)成FPGA定時(shí)器模塊IV的FPGA2中,F(xiàn)PGA2是一塊同時(shí)帶有雙口 RAM模塊III和FPGA定時(shí)器模塊IV的模塊(參見(jiàn)圖6 圖8);本實(shí)施例結(jié)構(gòu)的好處在于充分利用了 FPGA的資源;不單設(shè)雙口 RAM模塊,使定時(shí)器裝置硬件電路結(jié)構(gòu)更加簡(jiǎn)潔。實(shí)施例三
應(yīng)用上述ARM+FPGA組成的定時(shí)器裝置來(lái)實(shí)現(xiàn)定時(shí)器的方法,是以ARM控制模塊中的嵌入式ARM微處理器為控制核心、以FPGA定時(shí)器模塊進(jìn)行定時(shí)控制處理,用雙口 RAM模塊作為ARM控制模塊與FPGA定時(shí)器模塊之間數(shù)據(jù)傳輸?shù)臉蛄?,?shí)現(xiàn)數(shù)據(jù)通信;在嵌入式ARM微處理器初始化處理過(guò)程中,對(duì)雙口 RAM的每個(gè)存儲(chǔ)單元清零和FPGA中的定時(shí)單元清零;
ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將用戶程序使用的每個(gè)編號(hào)定時(shí)器設(shè)置的定時(shí)參數(shù)以及使用狀態(tài)信息傳輸?shù)诫p口 RAM模塊中,ARM控制模塊執(zhí)行用戶程序某一個(gè)編號(hào)定時(shí)器的輸出時(shí),將該編號(hào)定時(shí)器的運(yùn)行狀態(tài)信息傳輸?shù)诫p口 RAM模塊中;ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將檢測(cè)該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取指令按照編譯出現(xiàn)這類指令出現(xiàn)的先后順序?qū)⒃摼幪?hào)定時(shí)器的編號(hào)傳輸給雙口 RAM ;
ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將用戶程序使用的每個(gè)編號(hào)定時(shí)器設(shè)置的定時(shí)參數(shù)以及使用狀態(tài)信息傳輸?shù)诫p口 RAM模塊中,ARM控制模塊執(zhí)行用戶程序某一個(gè)編號(hào)定時(shí)器的輸出時(shí),將該編號(hào)定時(shí)器的運(yùn)行狀態(tài)信息傳輸?shù)诫p口 RAM模塊中;ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將檢測(cè)該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取指令按照編譯出現(xiàn)這類指令出現(xiàn)的先后順序?qū)⒃摼幪?hào)定時(shí)器的編號(hào)傳輸給雙口 RAM ; 由所述ARM控制模塊處理的狀態(tài)信息具體包括(參見(jiàn)圖4) D31 使用標(biāo)志位,該編號(hào)定時(shí)器在用戶程序中被使用,設(shè)置為“ 1 ”,否則為“0” ; D30:該編號(hào)定時(shí)器軟元件得電失電標(biāo)志位,得電設(shè)置為“1”,否則為“0”; D27 DO 該編號(hào)定時(shí)器的定時(shí)參數(shù)設(shè)置值; 由所述FPGA定時(shí)器模塊處理設(shè)置的狀態(tài)信息包括(參見(jiàn)圖4) D29 定時(shí)工作標(biāo)志位,正在進(jìn)行定時(shí)操作設(shè)置為“ 1 ”,否則為“0” D28 定時(shí)維持標(biāo)志位定時(shí)時(shí)間已到,該編號(hào)定時(shí)器軟元件仍然得電設(shè)置為“1”,否則為 “0”。所述ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,嵌入式ARM微處理器編譯用戶程序?qū)δ骋粋€(gè)編號(hào)定時(shí)器處理操作的具體步驟(參見(jiàn)圖9)為
slOl 判斷是否是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令?如果是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,則進(jìn)入步驟sl02,如果不是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,則進(jìn)入步驟 sl06 ;
sl02 如果是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,獲得并判斷該定時(shí)器軟元件的編號(hào)
值,
若編號(hào)值的屬于“200 255”的范圍,則進(jìn)入步驟sl05, 若編號(hào)值的屬于“100 199”的范圍,則進(jìn)入步驟sl03, 若編號(hào)值的屬于“000 099”的范圍,則進(jìn)入步驟sl04 ;
定時(shí)器軟元件的編號(hào)值為“200 255”的范圍內(nèi),Ims為最小定時(shí)時(shí)間單位的定時(shí)器; 定時(shí)器軟元件的編號(hào)值為“100 199”的范圍內(nèi),IOms為最小定時(shí)時(shí)間單位的定時(shí)器;定時(shí)器軟元件的編號(hào)值為“000 099”的范圍內(nèi),IOOms為最小定時(shí)時(shí)間單位的定時(shí)器; sl03 將該編號(hào)定時(shí)器的定時(shí)設(shè)置值擴(kuò)大10倍,使得IOms為最小定時(shí)時(shí)間單位的定時(shí)器在FPGA定時(shí)器模塊中以Ims為最小定時(shí)時(shí)間單位;
sl04 將該編號(hào)定時(shí)器的定時(shí)設(shè)置值擴(kuò)大100倍,使得IOOms為最小定時(shí)時(shí)間單位的定時(shí)器在FPGA定時(shí)器模塊中以Ims為最小定時(shí)時(shí)間單位;
sl05 根據(jù)該編號(hào)定時(shí)器軟元件的編號(hào)將定時(shí)設(shè)置值傳輸給雙口 RAM該定時(shí)器參數(shù)的存儲(chǔ)單元;
sloe 繼續(xù)按順序編譯其他指令;
S107 判斷是否是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令?如果是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令,則進(jìn)入步驟S108,如果不是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令,則進(jìn)入步驟sl09;
sl08 按照編譯該編號(hào)定時(shí)器的先后順序?qū)⒃摱〞r(shí)器的編號(hào)傳輸給雙口 RAM后進(jìn)入 sl09 ;
sl09 繼續(xù)按順序編譯其他指令,此處的其他指令包括編譯其它信息處理指令或編譯其它控制功能程序指令。圖9是ARM的編譯用戶程序?qū)δ骋粋€(gè)定時(shí)器處理操作流程圖,其他定時(shí)器的程序也與此相同,圖9中執(zhí)行定時(shí)器軟元件輸出指令和定時(shí)器實(shí)時(shí)定時(shí)參數(shù)值讀取指令在用戶程序中出現(xiàn)的位置是根據(jù)用戶程序的編制確定,不受圖9順序的制約。ARM控制模塊在用戶程序執(zhí)行過(guò)程中,通過(guò)對(duì)雙口 RAM的操作實(shí)現(xiàn)對(duì)FPGA定時(shí)器的控制,具體包括
ARM控制模塊處理包括雙口 RAM模塊操作控制,通過(guò)對(duì)雙口 RAM模塊的控制實(shí)現(xiàn)對(duì) FPGA定時(shí)器模塊的控制;其中,ARM控制模塊通過(guò)ARM控制模塊的一組數(shù)據(jù)總線XI、地址總線Zl和控制總線Yl從雙口 RAM模塊讀取、寫(xiě)入信息以實(shí)現(xiàn)對(duì)雙口 RAM模塊的控制,ARM控制模塊向雙口 RAM模塊傳輸運(yùn)行狀態(tài)命令,以對(duì)FPGA定時(shí)器模塊發(fā)送控制命令,ARM控制模塊從雙口 RAM模塊讀取定時(shí)器實(shí)時(shí)定時(shí)參數(shù)和觸頭存儲(chǔ)區(qū)讀入定時(shí)器的觸頭信息,用戶程序應(yīng)用其觸頭狀態(tài)信息進(jìn)行邏輯運(yùn)算和判斷處理;
FPGA定時(shí)器模塊控制處理包括定時(shí)器控制、定時(shí)器動(dòng)態(tài)參數(shù)傳輸控制;FPGA定時(shí)器模塊的定時(shí)器控制單元是采用循環(huán)處理定時(shí)器信息的方式,從ARM控制模塊發(fā)送給雙口 RAM模塊的信息獲得控制信息,根據(jù)定時(shí)器的運(yùn)行參數(shù)執(zhí)行對(duì)所有的定時(shí)器的控制處理; 其中ARM控制模塊對(duì)FPGA定時(shí)器控制的具體步驟為(參見(jiàn)圖10) s201 執(zhí)行該編號(hào)定時(shí)器軟元件輸出指令;
s202 判斷該編號(hào)定時(shí)器軟元件是否得電?如果該編號(hào)定時(shí)器軟元件得電,則進(jìn)入步驟s203,如果該編號(hào)定時(shí)器軟元件未得電,則進(jìn)入步驟s205 ; s203 從雙口 RAM讀入該編號(hào)定時(shí)器的32位信息; s204 設(shè)置標(biāo)志位D31,D30為“ 11 ”,并進(jìn)入s207 ; s205 從雙口 RAM讀入該編號(hào)定時(shí)器的32位信息; s206 設(shè)置標(biāo)志位D31,D30為“10”; s207 將該編號(hào)定時(shí)器的D3fD0的信息發(fā)送到雙口 RAM ;
S208 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指
令;
s209 執(zhí)行該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀出指令;s210 判斷是否滿足該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取條件?如果滿足讀取該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)條件,則進(jìn)入步驟s211,如果不滿足讀取該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)條件, 則進(jìn)入步驟s212 ;
s211 從雙口 RAM該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)存儲(chǔ)區(qū)讀入該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)參數(shù)值,并進(jìn)入s212;
s212 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指
令;
s213:執(zhí)行某編號(hào)定時(shí)器觸頭讀出指令,將該編號(hào)定時(shí)器編號(hào)除以32取整+0100H獲得該編號(hào)定時(shí)器觸頭信息在雙口 RAM的地址,從雙口 RAM中讀入該編號(hào)定時(shí)器觸頭信息所在的存儲(chǔ)單元內(nèi)容;
s214 將該編號(hào)定時(shí)器編號(hào)除以32取余,其值為該定時(shí)器觸頭信息所在存儲(chǔ)單元的位單元位數(shù),從該定時(shí)器觸頭信息所在的存儲(chǔ)單元中取該位信息; s215 執(zhí)行該編號(hào)定時(shí)器觸頭參與運(yùn)算的指令;
S216 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指令。圖10是ARM控制模塊對(duì)某一個(gè)編號(hào)定時(shí)器處理操作流程圖,其他編號(hào)定時(shí)器的程序也與此相同,圖10中執(zhí)行該編號(hào)定時(shí)器軟元件輸出指令、該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)值讀取指令和應(yīng)用該編號(hào)定時(shí)器觸頭的指令在程序中出現(xiàn)的位置是根據(jù)用戶程序的編制確定,不受圖10順序的制約。所述FPGA定時(shí)器模塊控制處理中,定時(shí)控制單元對(duì)所有定時(shí)器控制的具體步驟 (參見(jiàn)圖11-a和圖11-b)如下
s301 清定時(shí)器單元地址計(jì)數(shù)器和溢出位標(biāo)志TF (注定時(shí)器單元地址計(jì)數(shù)器是針對(duì)所有定時(shí)器的而言,比如256個(gè)定時(shí)器,定時(shí)器單元地址計(jì)數(shù)器從0開(kāi)始加1計(jì)數(shù),每循環(huán)一次處理一個(gè)編號(hào)定時(shí)器,直到定時(shí)器單元地址計(jì)數(shù)器加到255,再加1為256,此時(shí)溢出位標(biāo)志TF由0變化到1,產(chǎn)生溢出信號(hào));
s302 =Ims基準(zhǔn)時(shí)鐘周期工作脈沖上升沿觸發(fā)程序執(zhí)行1次;從步驟s303 步驟s316 是循環(huán)處理所有定時(shí)器的程序,每循環(huán)一次處理一個(gè)編號(hào)定時(shí)器的操作,直到設(shè)置的每個(gè)編號(hào)定時(shí)器被處理一次,其執(zhí)行過(guò)程是在FPGA模塊的基準(zhǔn)時(shí)鐘周期工作脈沖作用下執(zhí)行; s303 按照定時(shí)器單元地址計(jì)數(shù)器的值從雙口 RAM讀取某一個(gè)編號(hào)定時(shí)器32位長(zhǎng)度存儲(chǔ)單元內(nèi)容,即讀出32位字長(zhǎng)的某一個(gè)編號(hào)定時(shí)器信息; s304 獲得并判斷標(biāo)志位D31、D30、^9和擬8的位值
若 D31、D30、D29 和 D28 的位值為 “0 X X X ”、“ 1000”、“ 1001”、“ 1010” 或“ 1011”,則進(jìn)入步驟s305,
若D31、D30、D29和D28的位值為“1100 ”或“1101”,則進(jìn)入步驟s306, ^D3UD30,D29和D28的位值為“ 1110”,則進(jìn)入步驟s307, gD31、D30、D29*D28的位值為“1111”則進(jìn)入步驟s315 ;
若D31、D30、D29和擬8的位值為“OX X X ”,則說(shuō)明該編號(hào)定時(shí)器在用戶程序中沒(méi)有
被使用,
若D31、D30、D29和D28的位值為“ 1000”或“ 1001”或“ 1010”或“ 1011”,說(shuō)明該編號(hào)定時(shí)器軟元件處于失電狀態(tài),
若D31、D30、擬9和擬8的位值為“1100 ”或“ 1101 ”,則說(shuō)明該編號(hào)定時(shí)器軟元件處于由失電進(jìn)入得電狀態(tài),
若D31、D30、D^和擬8的位值為“ 1110”說(shuō)明該編號(hào)定時(shí)器軟元件處于得電定時(shí)狀態(tài), 但定時(shí)時(shí)間未到,
若D31、D30、擬9和擬8的位值為“ 1111 ”說(shuō)明該編號(hào)定時(shí)器定時(shí)已到,且該編號(hào)定時(shí)器軟元件仍然處于得電狀態(tài);
s305 清該編號(hào)定時(shí)器的觸頭位單元為“0”,并進(jìn)入步驟s308 ; s306 設(shè)置該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬9位為“1”,并進(jìn)入步驟s310 ;
s307 判斷該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO是否大于或等于雙口 RAM模塊該定時(shí)器的D27 DO內(nèi)容?如果大于或等于進(jìn)入步驟s312,否則,進(jìn)入步驟s311 ;
s308 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D29、D28單元設(shè)置為 “00”;
s309 清該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的DO D27為“0”,進(jìn)入步驟 s315 ;
s310 清該編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元的觸頭位單元為“0”; s311 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO進(jìn)行+1操作后再傳回D27 DO ;
s312 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬8位單元設(shè)置為“1” ; s313 置該編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元的觸頭位單元為“1”; s314 清該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO為全“0” ; s315 將該編號(hào)定時(shí)器單元地址計(jì)數(shù)器+1 ;s316 判斷定時(shí)器單元地址計(jì)數(shù)器的溢出位TF是否為1 ?如果是,則進(jìn)入步驟s317, 否則,進(jìn)入步驟s303 ;TF為定時(shí)器單元地址計(jì)數(shù)器溢出標(biāo)志位;
s317 循環(huán)將每一個(gè)編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元內(nèi)容傳輸給雙口 RAM觸頭存儲(chǔ)單元;
s318 循環(huán)將每一個(gè)編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D29、擬8設(shè)置值傳輸給雙口 RAM中各對(duì)應(yīng)編號(hào)定時(shí)器定時(shí)參數(shù)存儲(chǔ)單元的D29、D^位;
s319 置TF8單元為0108H,置TF9單元為0200H,0108H是雙口 RAM模塊中定時(shí)器的編號(hào)存儲(chǔ)區(qū)起始地址,0200H是雙口 RAM模塊中定時(shí)器的實(shí)時(shí)參數(shù)值存儲(chǔ)區(qū)起始地址;
s320 根據(jù)TF8單元內(nèi)容指向的雙口 RAM的定時(shí)器編號(hào)存儲(chǔ)區(qū)讀入該編號(hào)定時(shí)器軟元件編號(hào);
s321 判斷該編號(hào)定時(shí)器編號(hào)是否等于FFFHl ?如果相等則進(jìn)入步驟s301,否則進(jìn)入步驟s322 ;
s322 根據(jù)該編號(hào)定時(shí)器編號(hào)從FPGA中定時(shí)單元中的參數(shù)存儲(chǔ)單元讀出D27 DO的參數(shù);
s323 判斷該編號(hào)定時(shí)器軟元件編號(hào)的值,若該編號(hào)定時(shí)器軟元件編號(hào)在200 255范圍內(nèi),則進(jìn)入步驟,若該編號(hào)定時(shí)器軟元件編號(hào)在100 199范圍內(nèi),則進(jìn)入步驟 s324,若該編號(hào)定時(shí)器軟元件編號(hào)在000 099范圍內(nèi),則進(jìn)入步驟s325 ; s324 將該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)值縮小十倍; s325 將該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)值縮小百倍;
s326 根據(jù)TF8單元的值將該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)傳輸?shù)絋F9單元內(nèi)容指向的雙口 RAM該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)的存儲(chǔ)單元; s327 :TF8+1 — TF8, TF9+1 — TF9。
權(quán)利要求
1.一種ARM+FPGA組成的定時(shí)器裝置,其特征在于所述定時(shí)器裝置以嵌入式ARM微處理器為控制核心、以FPGA進(jìn)行定時(shí)處理,包括ARM控制模塊(I )、存儲(chǔ)器模塊(II )、FPGA定時(shí)器模塊(IV)、雙口 RAM模塊(III)和電源模塊(V ),ARM控制模塊(I )分別與存儲(chǔ)器模塊(II)和雙口 RAM模塊(III)連接,F(xiàn)PGA定時(shí)器模塊(IV)與雙口 RAM模塊(III)連接;所述ARM控制模塊(I )以嵌入式ARM微處理器(10)為控制核心,構(gòu)建嵌入式實(shí)時(shí)操作系統(tǒng),進(jìn)行多任務(wù)管理和通信管理,實(shí)現(xiàn)對(duì)定時(shí)器裝置中各模塊及其信息的處理和控制;所述存儲(chǔ)器模塊(II)用于存儲(chǔ)操作系統(tǒng)及嵌入式ARM微處理器(10)程序的目標(biāo)代碼映像文件、執(zhí)行用戶程序的處理信息、以及為定時(shí)器裝置的運(yùn)行和通信數(shù)據(jù)處理提供空間;所述雙口 RAM模塊(III)分別與所述FPGA定時(shí)器模塊(IV)和所述ARM控制模塊(I )連接,以實(shí)現(xiàn)所述ARM控制模塊(I )與所述FPGA定時(shí)器模塊(IV)之間的數(shù)據(jù)傳輸;所述FPGA定時(shí)器模塊(IV)以定時(shí)控制單元為核心,通過(guò)雙口 RAM模塊(III)從ARM控制模塊(I )獲得定時(shí)器運(yùn)行和定時(shí)時(shí)間參數(shù)的信息或停止運(yùn)行信息,在基準(zhǔn)時(shí)鐘周期工作脈沖的作用下,對(duì)定時(shí)器存儲(chǔ)單元內(nèi)容進(jìn)行循環(huán)讀取、判斷、處理,實(shí)現(xiàn)定時(shí)器功能;所述電源模塊(V )為ARM控制模塊(I )、存儲(chǔ)器模塊(II )、雙口 RAM模塊(III)和FPGA 定時(shí)器模塊(IV)提供變壓后的電源。
2.根據(jù)權(quán)利要求1所述的ARM+FPGA組成的定時(shí)器裝置,其特征在于所述ARM控制模塊(I )包括嵌入式ARM微處理器(10 )、人機(jī)交互電路(11)、控制電路(12 )、復(fù)位電路(13 )、 JTAG調(diào)試接口電路(14),嵌入式ARM微處理器(10)作為控制核心,分別與人機(jī)交互電路 (11 )、控制電路(12)、復(fù)位電路(13)和JTAG調(diào)試接口電路(14)連接;ARM控制模塊(I )在嵌入式ARM微處理器(10)中構(gòu)建嵌入式實(shí)時(shí)操作系統(tǒng),進(jìn)行多任務(wù)管理和通信管理,實(shí)現(xiàn)對(duì)ARM控制模塊(I )和FPGA定時(shí)器模塊(IV)各種信息的處理和控制;人機(jī)交互電路(11)完成ARM控制模塊(I )和FPGA定時(shí)器模塊(IV)的控制命令、控制參數(shù)的輸入;以及ARM控制模塊(I )和FPGA定時(shí)器模塊(IV)各種參數(shù)的人機(jī)界面控制;控制電路(12)完成ARM控制模塊(I )的數(shù)據(jù)采集與控制驅(qū)動(dòng);復(fù)位電路(13)為ARM控制模塊(I )電路提供復(fù)位信號(hào);JTAG調(diào)試接口電路(14)提供調(diào)試接口與外接電路相連實(shí)現(xiàn)編程裝置對(duì)ARM控制模塊 (I )的硬件和軟件的調(diào)試。
3.根據(jù)權(quán)利要求1所述的ARM+FPGA組成的定時(shí)器裝置,其特征在于所述存儲(chǔ)器模塊 (II)包括Nor FLASH存儲(chǔ)器(21 )、Nand FLASH存儲(chǔ)器(22)和 SDRAM存儲(chǔ)器(23),Nor FLASH 存儲(chǔ)器(21)、Nand FLASH存儲(chǔ)器(22)和SDRAM存儲(chǔ)器(23)分別通過(guò)ARM控制模塊(I )的數(shù)據(jù)總線(XI )、地址總線(Zl)和控制總線(Yl)與ARM控制模塊(I )的嵌入式ARM微處理器 (10)連接,實(shí)現(xiàn)ARM微處理器對(duì)存儲(chǔ)器的操作控制,Nor FLASH存儲(chǔ)器(21)用來(lái)存儲(chǔ)操作系統(tǒng)及嵌入式ARM微處理器(10)程序的目標(biāo)代碼映像文件,Nand FLASH存儲(chǔ)器(22)存放執(zhí)行用戶程序的處理信息,以及失電需要保持的信息,包括定時(shí)器裝置處理的信息,SDRAM 存儲(chǔ)器(23)為ARM控制模塊(I )運(yùn)行和通信數(shù)據(jù)處理提供空間,包括定時(shí)器裝置處理的信肩、ο
4.根據(jù)權(quán)利要求1所述的ARM+FPGA組成的定時(shí)器裝置,其特征在于所述FPGA定時(shí)器模塊(IV)包括時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器(41)、定時(shí)單元(42)和定時(shí)控制單元(43);定時(shí)控制單元(43)是FPGA定時(shí)器模塊(IV)的控制核心,分別與時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器(41) 和定時(shí)單元(42)連接,F(xiàn)PGA定時(shí)器模塊(IV)通過(guò)定時(shí)控制單元(43)與雙口 RAM模塊(III) 連接,并通過(guò)雙口 RAM模塊(III)與ARM控制模塊(I )連接;時(shí)間基準(zhǔn)脈沖信號(hào)發(fā)生器(41)產(chǎn)生定時(shí)需要的基準(zhǔn)時(shí)鐘周期工作脈沖;定時(shí)單元(42)是由32位字長(zhǎng)存儲(chǔ)單元組成的定時(shí)存儲(chǔ)器,包括多個(gè)Ims定時(shí)器存儲(chǔ)單元(421)、IOms定時(shí)器存儲(chǔ)單元(422)、IOOms定時(shí)器存儲(chǔ)單元(423)和定時(shí)器軟觸頭存儲(chǔ)單元(424);定時(shí)控制單元(43)通過(guò)雙口 RAM模塊(III)從ARM控制模塊(I )獲得定時(shí)器運(yùn)行和定時(shí)時(shí)間參數(shù)的信息或停止運(yùn)行信息,在基準(zhǔn)時(shí)鐘周期工作脈沖的作用下,定時(shí)控制單元(43) 對(duì)定時(shí)單元(42)的存儲(chǔ)單元內(nèi)容進(jìn)行循環(huán)讀取判斷,如果定時(shí)單元(42)中該定時(shí)器的定時(shí)參數(shù)大于或等于雙口 RAM模塊(III)中的該定時(shí)器的定時(shí)參數(shù)時(shí),設(shè)置運(yùn)行狀態(tài)標(biāo)志,置位定時(shí)器軟觸頭存儲(chǔ)單元(424)該定時(shí)器軟觸頭的位單元,清定時(shí)單元(42)中該定時(shí)器的定時(shí)單元內(nèi)容;如果小于定時(shí)單元(42)中該定時(shí)器的定時(shí)參數(shù)則進(jìn)行加1操作,設(shè)置運(yùn)行狀態(tài)標(biāo)志,以及設(shè)置定時(shí)器軟觸頭存儲(chǔ)單元(4M)的該定時(shí)器軟觸頭的位單元狀態(tài);其循環(huán)讀取判斷操作是按照時(shí)間基準(zhǔn)周期循環(huán)操作一次,并將定時(shí)器軟觸頭存儲(chǔ)單元(4M)的內(nèi)容傳輸?shù)诫p口 RAM模塊(III)中。
5.根據(jù)權(quán)利要求1所述的ARM+FPGA組成的定時(shí)器裝置,其特征在于所述雙口RAM模塊(III)通過(guò)ARM控制模塊(I )的一組數(shù)據(jù)總線(XI )、地址總線(Zl)和控制總線(Yl)與ARM 控制模塊(I )的嵌入式ARM微處理器(10)連接,雙口 RAM模塊(III)還通過(guò)FPGA定時(shí)器模塊(IV)與雙口 RAM模塊(III)之間另一組數(shù)據(jù)總線(X2)、地址總線(Z2)和控制總線(Y2) 與FPGA定時(shí)器模塊(IV)連接;雙口 RAM模塊(III)是ARM控制模塊(I )與FPGA定時(shí)器模塊(IV)之間數(shù)據(jù)傳輸?shù)臉蛄海軌驅(qū)崿F(xiàn)ARM控制模塊(I )和FPGA定時(shí)器模塊(IV)同時(shí)對(duì)雙口 RAM模塊(III)進(jìn)行操作;ARM控制模塊(I )在執(zhí)行大規(guī)模時(shí)間順序邏輯控制程序或可編程控制器用戶程序的編譯程序時(shí),將每個(gè)定時(shí)器的定時(shí)參數(shù)傳輸?shù)诫p口 RAM模塊(III)相對(duì)應(yīng)的存儲(chǔ)單元中;在執(zhí)行大規(guī)模時(shí)間順序邏輯控制程序或可編程控制器的用戶程序時(shí), 當(dāng)定時(shí)器滿足定時(shí)運(yùn)行的條件下,ARM控制模塊(I )向雙口 RAM模塊(III)傳輸運(yùn)行狀態(tài)信息,當(dāng)定時(shí)器不滿足運(yùn)行的條件下,ARM控制模塊(I )向雙口 RAM模塊(III)傳輸停止運(yùn)行信息;當(dāng)大規(guī)模時(shí)間順序邏輯控制程序或可編程控制器用戶程序讀取定時(shí)器軟元件觸頭信息時(shí),ARM控制模塊(I )從雙口 RAM模塊(III)讀取該觸頭狀態(tài)信息。
6.根據(jù)權(quán)利要求1所述的ARM+FPGA組成的定時(shí)器裝置,其特征在于所述雙口RAM模塊(III)和由FPGAl構(gòu)成的FPGA定時(shí)器模塊(IV)是分別獨(dú)立的兩個(gè)模塊。
7.根據(jù)權(quán)利要求1所述的ARM+FPGA組成的定時(shí)器裝置,其特征在于所述雙口RAM模塊(III)嵌入構(gòu)成FPGA定時(shí)器模塊(IV)的FPGA2中,所述FPGA2模塊是一塊同時(shí)帶有雙口 RAM模塊(III)和FPGA定時(shí)器模塊(IV)結(jié)構(gòu)的模塊。
8.一種應(yīng)用權(quán)利要求1所述ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法,其特征在于該方法是以ARM控制模塊中的嵌入式ARM微處理器為控制核心、以FPGA定時(shí)器模塊進(jìn)行定時(shí)控制處理,用雙口 RAM模塊作為ARM控制模塊與FPGA定時(shí)器模塊之間數(shù)據(jù)傳輸?shù)臉蛄海瑢?shí)現(xiàn)數(shù)據(jù)通信;在嵌入式ARM微處理器初始化處理過(guò)程中,對(duì)雙口 RAM的每個(gè)存儲(chǔ)單元清零和FPGA中的定時(shí)單元清零;ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將用戶程序使用的每個(gè)編號(hào)定時(shí)器設(shè)置的定時(shí)參數(shù)以及使用狀態(tài)信息傳輸?shù)诫p口 RAM模塊中,ARM控制模塊執(zhí)行用戶程序某一個(gè)編號(hào)定時(shí)器的輸出時(shí),將該編號(hào)定時(shí)器的運(yùn)行狀態(tài)信息傳輸?shù)诫p口 RAM模塊中;ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,將檢測(cè)該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取指令按照編譯出現(xiàn)這類指令出現(xiàn)的先后順序?qū)⒃摼幪?hào)定時(shí)器的編號(hào)傳輸給雙口 RAM ; 由所述ARM控制模塊處理的狀態(tài)信息具體包括D31 使用標(biāo)志位,該編號(hào)定時(shí)器在用戶程序中被使用,設(shè)置為“ 1 ”,否則為“0” ; D30:該編號(hào)定時(shí)器軟元件得電失電標(biāo)志位,得電設(shè)置為“1”,否則為“0”; D27 DO 該編號(hào)定時(shí)器的定時(shí)參數(shù)設(shè)置值; 由所述FPGA定時(shí)器模塊處理設(shè)置的狀態(tài)信息包括 D29 定時(shí)工作標(biāo)志位,正在進(jìn)行定時(shí)操作設(shè)置為“ 1 ”,否則為“0” D28 定時(shí)維持標(biāo)志位定時(shí)時(shí)間已到,該編號(hào)定時(shí)器軟元件仍然得電設(shè)置為“1”,否則為 “0”。
9.如權(quán)利要求8所述應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法,其特征在于所述ARM控制模塊在對(duì)用戶程序進(jìn)行編譯過(guò)程中,嵌入式ARM微處理器編譯用戶程序?qū)δ骋粋€(gè)編號(hào)定時(shí)器處理操作的具體步驟為slOl 判斷是否是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令?如果是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,則進(jìn)入步驟sl02,如果不是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,則進(jìn)入步驟 sl06 ;sl02 如果是某一個(gè)編號(hào)定時(shí)器軟元件輸出指令,獲得并判斷該定時(shí)器軟元件的編號(hào)值,若編號(hào)值的屬于“200 255”的范圍,則進(jìn)入步驟sl05, 若編號(hào)值的屬于“100 199”的范圍,則進(jìn)入步驟sl03, 若編號(hào)值的屬于“000 099”的范圍,則進(jìn)入步驟sl04 ;定時(shí)器軟元件的編號(hào)值為“200 255”的范圍內(nèi),Ims為最小定時(shí)時(shí)間單位的定時(shí)器; 定時(shí)器軟元件的編號(hào)值為“100 199”的范圍內(nèi),IOms為最小定時(shí)時(shí)間單位的定時(shí)器;定時(shí)器軟元件的編號(hào)值為“000 099”的范圍內(nèi),IOOms為最小定時(shí)時(shí)間單位的定時(shí)器;sl03 將該編號(hào)定時(shí)器的定時(shí)設(shè)置值擴(kuò)大10倍,使得IOms為最小定時(shí)時(shí)間單位的定時(shí)器在FPGA定時(shí)器模塊中以Ims為最小定時(shí)時(shí)間單位;sl04 將該編號(hào)定時(shí)器的定時(shí)設(shè)置值擴(kuò)大100倍,使得IOOms為最小定時(shí)時(shí)間單位的定時(shí)器在FPGA定時(shí)器模塊中以Ims為最小定時(shí)時(shí)間單位;sl05 根據(jù)該編號(hào)定時(shí)器軟元件的編號(hào)將定時(shí)設(shè)置值傳輸給雙口 RAM該定時(shí)器參數(shù)的存儲(chǔ)單元;sloe 繼續(xù)按順序編譯其他指令;S107 判斷是否是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令?如果是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令,則進(jìn)入步驟sl08,如果不是該編號(hào)定時(shí)器定時(shí)動(dòng)態(tài)參數(shù)讀取輸出指令,則進(jìn)入步驟sl09;sl08 按照編譯該編號(hào)定時(shí)器的先后順序?qū)⒃摱〞r(shí)器的編號(hào)傳輸給雙口 RAM后進(jìn)入 sl09 ;sl09 繼續(xù)按順序編譯其他指令。
10.如權(quán)利要求8所述應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法,其特征在于ARM控制模塊在用戶程序執(zhí)行過(guò)程中,通過(guò)對(duì)雙口 RAM的操作實(shí)現(xiàn)對(duì)FPGA定時(shí)器的控制,具體包括ARM控制模塊處理包括雙口 RAM模塊操作控制,通過(guò)對(duì)雙口 RAM模塊的控制實(shí)現(xiàn)對(duì) FPGA定時(shí)器模塊的控制;其中,ARM控制模塊通過(guò)ARM控制模塊的一組數(shù)據(jù)總線(XI)、地址總線(Zl)和控制總線(Yl)從雙口 RAM模塊讀取、寫(xiě)入信息以實(shí)現(xiàn)對(duì)雙口 RAM模塊的控制, ARM控制模塊向雙口 RAM模塊傳輸運(yùn)行狀態(tài)命令,以對(duì)FPGA定時(shí)器模塊發(fā)送控制命令,ARM 控制模塊從雙口 RAM模塊讀取定時(shí)器實(shí)時(shí)定時(shí)參數(shù)和觸頭存儲(chǔ)區(qū)讀入定時(shí)器的觸頭信息, 用戶程序應(yīng)用其觸頭狀態(tài)信息進(jìn)行邏輯運(yùn)算和判斷處理;FPGA定時(shí)器模塊控制處理包括定時(shí)器控制、定時(shí)器動(dòng)態(tài)參數(shù)傳輸控制;FPGA定時(shí)器模塊的定時(shí)器控制單元是采用循環(huán)處理定時(shí)器信息的方式,從ARM控制模塊發(fā)送給雙口 RAM模塊的信息獲得控制信息,根據(jù)定時(shí)器的運(yùn)行參數(shù)執(zhí)行對(duì)所有的定時(shí)器的控制處理; 所述ARM控制模塊對(duì)FPGA定時(shí)器控制的具體步驟為 s201 執(zhí)行該編號(hào)定時(shí)器軟元件輸出指令;s202 判斷該編號(hào)定時(shí)器軟元件是否得電?如果該編號(hào)定時(shí)器軟元件得電,則進(jìn)入步驟s203,如果該編號(hào)定時(shí)器軟元件未得電,則進(jìn)入步驟s205 ; s203 從雙口 RAM讀入該編號(hào)定時(shí)器的32位信息; s204 設(shè)置標(biāo)志位D31,D30為“11”,并進(jìn)入s207 ; s205 從雙口 RAM讀入該編號(hào)定時(shí)器的32位信息; s206 設(shè)置標(biāo)志位D31,D30為“10”; s207 將該編號(hào)定時(shí)器的D3fD0的信息發(fā)送到雙口 RAM ;s208 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指令;s209 執(zhí)行該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀出指令;s210 判斷是否滿足該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)讀取條件?如果滿足讀取該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)條件,則進(jìn)入步驟s211,如果不滿足讀取該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)條件, 則進(jìn)入步驟s212 ;s211 從雙口 RAM該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)存儲(chǔ)區(qū)讀入該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)參數(shù)值,并進(jìn)入s212;S212 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指令;s213:執(zhí)行某編號(hào)定時(shí)器觸頭讀出指令,將該編號(hào)定時(shí)器編號(hào)除以32取整+0100H獲得該編號(hào)定時(shí)器觸頭信息在雙口 RAM的地址,從雙口 RAM中讀入該編號(hào)定時(shí)器觸頭信息所在的存儲(chǔ)單元內(nèi)容;s214 將該編號(hào)定時(shí)器編號(hào)除以32取余,其值為該定時(shí)器觸頭信息所在存儲(chǔ)單元的位單元位數(shù),從該定時(shí)器觸頭信息所在的存儲(chǔ)單元中取該位信息; s215 執(zhí)行該編號(hào)定時(shí)器觸頭參與運(yùn)算的指令;S216 繼續(xù)按順序執(zhí)行其他指令,包括其它信息處理指令或執(zhí)行其它控制功能程序指令。
11.如權(quán)利要求10所述應(yīng)用ARM+FPGA組成的定時(shí)器裝置實(shí)現(xiàn)定時(shí)器的方法,其特征在于所述FPGA定時(shí)器模塊控制處理中,定時(shí)控制單元對(duì)所有定時(shí)器控制的具體步驟如下 s301 清定時(shí)器單元地址計(jì)數(shù)器和溢出位標(biāo)志TF ;s302 =Ims基準(zhǔn)時(shí)鐘周期工作脈沖上升沿觸發(fā)程序執(zhí)行1次;從步驟s303 步驟s316 是循環(huán)處理所有定時(shí)器的程序,每循環(huán)一次處理一個(gè)編號(hào)定時(shí)器的操作,直到設(shè)置的每個(gè)編號(hào)定時(shí)器被處理一次,其執(zhí)行過(guò)程是在FPGA模塊的基準(zhǔn)時(shí)鐘周期工作脈沖作用下執(zhí)行; s303 按照定時(shí)器單元地址計(jì)數(shù)器的值從雙口 RAM讀取某一個(gè)編號(hào)定時(shí)器32位長(zhǎng)度存儲(chǔ)單元內(nèi)容,即讀出32位字長(zhǎng)的某一個(gè)編號(hào)定時(shí)器信息; s304 獲得并判斷標(biāo)志位D31、D30、D29和擬8的位值若 D31、D30、D29 和 D28 的位值為 “0 X X X ”、“ 1000”、“ 1001”、“ 1010” 或“ 1011”,則進(jìn)入步驟s305,若D31、D30、D29和D28的位值為“1100 ”或“ 1101 ”,則進(jìn)入步驟s306, 若D31、D30、D29和D28的位值為“ 1110”,則進(jìn)入步驟s307, 若D31、D30、D29和D28的位值為“1111”則進(jìn)入步驟s315 ;若D31、D30、D29和擬8的位值為“OX X X ”,則說(shuō)明該編號(hào)定時(shí)器在用戶程序中沒(méi)有被使用,若D31、D30、D29和D28的位值為“ 1000”、“ 1001 ”、“ 1010”或“ 1011 ”,說(shuō)明該編號(hào)定時(shí)器軟元件處于失電狀態(tài),若D31、D30、擬9和擬8的位值為“1100 ”或“ 1101 ”,則說(shuō)明該編號(hào)定時(shí)器軟元件處于由失電進(jìn)入得電狀態(tài),若D31、D30、D^和擬8的位值為“ 1110”說(shuō)明該編號(hào)定時(shí)器軟元件處于得電定時(shí)狀態(tài), 但定時(shí)時(shí)間未到,若D31、D30、擬9和擬8的位值為“ 1111 ”說(shuō)明該編號(hào)定時(shí)器定時(shí)已到,且該編號(hào)定時(shí)器軟元件仍然處于得電狀態(tài);s305 清該編號(hào)定時(shí)器的觸頭位單元為“0”,并進(jìn)入步驟s308 ; s306 設(shè)置該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬9位為“1”,并進(jìn)入步驟s310 ;s307 判斷該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO是否大于或等于雙口 RAM模塊該定時(shí)器的D27 DO內(nèi)容?如果大于或等于進(jìn)入步驟s312,否則,進(jìn)入步驟s311 ;s308 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D29、D28單元設(shè)置為 “00”;s309 清該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的DO D27為“0”,進(jìn)入步驟 s315 ;s310 清該編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元的觸頭位單元為“0”; s311 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO進(jìn)行+1操作后再傳回D27 DO ;s312 將該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬8位單元設(shè)置為“1” ; s313 置該編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元的觸頭位單元為“1”; s314 清該編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的D27 DO為全“0” ; s315 將該編號(hào)定時(shí)器單元地址計(jì)數(shù)器+1 ;s316 判斷定時(shí)器單元地址計(jì)數(shù)器的溢出位TF是否為1 ?如果是,則進(jìn)入步驟s317, 否則,進(jìn)入步驟s303 ;TF為定時(shí)器單元地址計(jì)數(shù)器溢出標(biāo)志位;s317 循環(huán)將每一個(gè)編號(hào)定時(shí)器在FPGA中的軟觸頭存儲(chǔ)單元內(nèi)容傳輸給雙口 RAM觸頭存儲(chǔ)單元;s318 循環(huán)將每一個(gè)編號(hào)定時(shí)器在FPGA定時(shí)單元中的參數(shù)存儲(chǔ)單元的擬9、擬8設(shè)置值傳輸給雙口 RAM中各對(duì)應(yīng)編號(hào)定時(shí)器定時(shí)參數(shù)存儲(chǔ)單元的D29、D^位;s319 置TF8單元為0108H,置TF9單元為0200H,0108H是雙口 RAM模塊中定時(shí)器的編號(hào)存儲(chǔ)區(qū)起始地址,0200H是雙口 RAM模塊中定時(shí)器的實(shí)時(shí)參數(shù)值存儲(chǔ)區(qū)起始地址;s320 根據(jù)TF8單元內(nèi)容指向的雙口 RAM的定時(shí)器編號(hào)存儲(chǔ)區(qū)讀入該編號(hào)定時(shí)器軟元件編號(hào);s321 判斷該編號(hào)定時(shí)器編號(hào)是否等于FFFHl ?如果相等則進(jìn)入步驟s301,否則進(jìn)入步驟s322 ;s322 根據(jù)該編號(hào)定時(shí)器編號(hào)從FPGA中定時(shí)單元中的參數(shù)存儲(chǔ)單元讀出D27 DO的參數(shù);s323 判斷該編號(hào)定時(shí)器軟元件編號(hào)的值,若該編號(hào)定時(shí)器軟元件編號(hào)在200 255 范圍內(nèi),則進(jìn)入步驟,若該編號(hào)定時(shí)器軟元件編號(hào)在100 199范圍內(nèi),則進(jìn)入步驟 s3M,若該編號(hào)定時(shí)器軟元件編號(hào)在000 099范圍內(nèi),則進(jìn)入步驟s325 ; s324 將該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)值縮小十倍; s325 將該編號(hào)定時(shí)器的定時(shí)實(shí)時(shí)值縮小百倍;s326 根據(jù)TF8單元的值將該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)傳輸?shù)絋F9單元內(nèi)容指向的雙口 RAM該編號(hào)定時(shí)器實(shí)時(shí)定時(shí)參數(shù)的存儲(chǔ)單元; s327 :TF8+1 — TF8, TF9+1 — TF9。
全文摘要
一種ARM+FPGA組成的定時(shí)器裝置,以嵌入式ARM微處理器為控制模塊、FPGA為定時(shí)處理模塊,包括ARM控制模塊、存儲(chǔ)器模塊、FPGA定時(shí)器模塊、雙口RAM模塊和電源模塊;ARM控制模塊分別與存儲(chǔ)器模塊和雙口RAM模塊連接,F(xiàn)PGA定時(shí)器模塊與雙口RAM模塊連接;ARM控制模塊在執(zhí)行大規(guī)模時(shí)間控制程序或可編程控制器用戶程序時(shí),定時(shí)器滿足運(yùn)行的條件下,ARM控制模塊向雙口RAM模塊傳輸運(yùn)行狀態(tài)信息,不滿足運(yùn)行的條件下,向雙口RAM模塊傳輸停止運(yùn)行信息;當(dāng)程序讀取軟觸頭存儲(chǔ)單元信息時(shí),ARM控制模塊從雙口RAM模塊讀取該觸頭狀態(tài)信息。該裝置及其實(shí)現(xiàn)定時(shí)器的方法定時(shí)精度高、不占用PLC用戶程序執(zhí)行時(shí)間。
文檔編號(hào)G05B19/05GK102323786SQ201110184570
公開(kāi)日2012年1月18日 申請(qǐng)日期2011年7月1日 優(yōu)先權(quán)日2011年7月1日
發(fā)明者付杰, 吳筆迅, 李克儉, 潘紹明, 蔡啟仲 申請(qǐng)人:廣西工學(xué)院
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1