基于SOPC的空調智能溫度控制器的設計
1 引言
本文引用地址:http://dyxdggzs.com/article/104905.htm智能控制是控制界新興的研究領(lǐng)域,是一門(mén)邊緣交叉學(xué)科。智能控制的一種定義為:應用人工智能的理論和技術(shù)及運籌學(xué)的優(yōu)化方法同控制理論方法與技術(shù)結合,在未知環(huán)境下,仿效人類(lèi)的智能,實(shí)現對系統的控制。微電子技術(shù)界各大芯片生產(chǎn)廠(chǎng)家均推出了專(zhuān)用的神經(jīng)網(wǎng)絡(luò )芯片和模糊芯片,采用這種高速的專(zhuān)用芯片,大大方便了智能控制應用系統的實(shí)現。本文采用現場(chǎng)可編程門(mén)陣列(FPGA)技術(shù),對智能控制器的設計和實(shí)現進(jìn)行研究。
2 控制器硬件設計
控制器主芯片采用ALTERA公司的型號為APEX系列的FPGA芯片,芯片型號為EP20K200EFC484-2X。APEX20K系列器件是一個(gè)具有多核結構的PLD器件系列,支持可編程單芯片系統SOPC。該型號擁有20萬(wàn)可用門(mén)資源,13KB的內部存儲空間,382個(gè)用戶(hù)可用引腳,1.8V/2.5V I/O。主處理器采用ALTERA公司的32位NIOS處理器軟核,系統總線(xiàn)采用AVALON總線(xiàn),外圍擴展:片內存儲器(9KB),RS232串行通訊口,智能控制算法加速器單元,模擬量輸入端口,數字量/開(kāi)關(guān)量輸出端口,鍵盤(pán)PIO,LED顯示PIO等,硬件體系結構框圖如圖1所示。
圖1 硬件體系結構
2.1 Nios軟核處理器
NIOS CPU是一種采用流水線(xiàn)技術(shù),單指令流的RISC處理器,具有分離的指令和數據存儲器端口(Harvard存儲器結構)。本文處理器主頻為33.333MHz。NIOS CPU中的內部寄存器包括:一個(gè)通用寄存器文件,多個(gè)內部控制寄存器,一個(gè)程序計數器,以及一個(gè)用于前綴指令的K寄存器。
NIOS3.0 CPU允許用戶(hù)取消對陷阱指令、硬中斷或內部異常的支持,以把NIOS系統配置成一個(gè)最簡(jiǎn)單的控制系統(不運行復雜軟件)。NIOS處理器有一個(gè)可選的片上JTAG調試模塊,用于實(shí)現調試工具和NIOS CPU的通訊。調試模塊含有First Silicon Solution (FS2)公司設計的IP核。在NIOS CPU中,此調試模塊被稱(chēng)作NIOS OCI調試模塊。NIOS OCI調試模塊可以實(shí)現運行控制、硬件斷點(diǎn)和軟件跟蹤。
2.2 UART串口通信
UART外圍硬件電路調用ALTERA公司集成到其開(kāi)發(fā)環(huán)境中的NIOS系統IP庫模塊,其功能描述如下。NIOS UART用于在A(yíng)ltera的FPGA中實(shí)現簡(jiǎn)單的RS-232異步發(fā)送和接收邏輯。UART通過(guò)兩個(gè)外部引腳(TxD和RxD)發(fā)送和接收串口數據。為了與RS232的電壓信號相匹配,在RxD/TxD輸入輸出引腳與相應的外部RS232連接之間需要有電平轉換芯片。
UART傳送邏輯含有一個(gè)7位、8位或9位的txdata保持寄存器。傳送移位寄存器直接連接到TxD數據引腳,數據的LSB首先移出到TxD。傳送邏輯可以自動(dòng)根據RS232通信協(xié)議在連續的TxD數據流中插入正確的開(kāi)始位、停止位和奇偶校驗位。UART接收邏輯含有一個(gè)7位、8位或9位的接收移位寄存器,以及一個(gè)7位、8位或9位的rxdata保持寄存器??梢酝ㄟ^(guò)軟件直接讀取rxdata保持寄存器。接收邏輯根據RS232通信協(xié)議在連續的RxD數據流中自動(dòng)檢測正確的開(kāi)始位、停止位和奇偶校驗位。
UART產(chǎn)生一個(gè)IRQ輸出信號作為其Avalon總線(xiàn)接口的一部分。當一個(gè)或多個(gè)內部條件發(fā)生,并且對應的control寄存器的中斷允許位也為1時(shí),UART發(fā)出一個(gè)中斷請求。在復位時(shí),所有的中斷允許位設置為0。因此,只有軟件將一個(gè)或多個(gè)中斷允許位設置為1時(shí),UART才能發(fā)出中斷請求。UART模塊與總線(xiàn)接口如圖2所示。其中,address為相對地址,irq為中斷請求信號,chipselect為片選信號,dataavaliable為接收數據線(xiàn)有效信號,readyfordata為接收數據字準備完畢信號,begintransfer為開(kāi)始發(fā)送數據信號。
圖2 UART模塊與總線(xiàn)接口圖
2.3 AVALON總線(xiàn)與用戶(hù)自定義邏輯控制算法模塊
AVALON總線(xiàn)主要用于連接片內處理器與外設,以構成可編程單芯片上系統(SOPC)。它描述了主從構件間的端口連接關(guān)系,以及構件間通信的時(shí)序關(guān)系。AVALON總線(xiàn)擁有多種傳輸模式,以適應不同外設的要求。AVALON總線(xiàn)的基本傳輸模式是在一個(gè)主外設和一個(gè)從外設之間進(jìn)行單個(gè)字節、半字或字的傳輸。當一次傳輸結束后,不論新的傳輸過(guò)程是否還是在同樣的外設之間進(jìn)行,AVALON總線(xiàn)總是可以在下一個(gè)時(shí)鐘周期立即開(kāi)始另一次傳輸。AVALON總線(xiàn)支持多個(gè)總線(xiàn)主外設,允許單個(gè)總線(xiàn)事務(wù)中在外設之間傳輸多個(gè)數據單元。這一多主設備結構為構建SOPC系統提供了極大的靈活性,并且能適應高帶寬的外設。AVALON總線(xiàn)是為SOPC環(huán)境而設計,互連邏輯由PLD內部的邏輯單元構成。
AVALON總線(xiàn)還包括許多其他用以支持SOPC Builder軟件自動(dòng)生成系統、總線(xiàn)和外設的特性和約定。如,最大4GB的地址空間,內置地址譯碼,多主設備總線(xiàn)結構,采用向導幫助用戶(hù)配置系統,動(dòng)態(tài)地址對齊等。
為了實(shí)現快速實(shí)時(shí)系統,控制器神經(jīng)網(wǎng)絡(luò )控制算法采用硬件電路實(shí)現,作為用戶(hù)自定義的IP組件以外圍算法加速器的形式連接到系統總線(xiàn)上。并行輸入輸出(PIO)模塊是1至32位的并行輸入/輸出模塊。采用PIO作為軟件和用戶(hù)自定義邏輯之間的存儲器映像接口??刂谱挚刂扑惴K的運行,狀態(tài)字0表示控制算法模塊正在運行,狀態(tài)字1表示輸入寄存器有否新的輸入,狀態(tài)字2表示輸出寄存器有新的輸出,當控制器有新的輸出結果時(shí),置為高。輸入寄存器,包含用戶(hù)溫度給定值和檢測到的系統輸出值,軟件可寫(xiě)入寄存器,同時(shí)置狀態(tài)字1高;輸出寄存器,為控制輸出,軟件可讀出其值,同時(shí)置狀態(tài)字2低
2.4 定時(shí)器
SOPC Builder能自動(dòng)生成定時(shí)器模塊的源碼以及相應的軟件接口子程序,系統集成方便。NIOS定時(shí)器模塊是32位的內部定時(shí)器。軟件可以通過(guò)寫(xiě)控制寄存器來(lái)操作定時(shí)器,還可以讀取內部計數器值。定時(shí)器模塊可以生成中斷請求信號,也可以用內部控制位進(jìn)行中斷屏蔽。
軟件可以通過(guò)以下方式控制定時(shí)器:預置periodl和periodh寄存器設定定時(shí)器周期,設置control寄存器的start和stop位來(lái)允許或禁止中斷,通過(guò)設置control寄存器的ito位來(lái)允許或禁止中斷,通過(guò)設置control寄存器中的cont位設定定時(shí)器的工作模式(定時(shí)器還是計數器)。NIOS定時(shí)器由系統主時(shí)鐘(clk)驅動(dòng),NIOS CPU和其他外設也使用該時(shí)鐘信號。該時(shí)鐘同時(shí)驅動(dòng)軟件接口寄存器和內部計數器。
3 控制器軟件設計
在SOPC Builder開(kāi)發(fā)工具中給各硬件模塊設置屬性,分配物理地址,配置存儲空間的大小,生成硬件系統。接著(zhù)進(jìn)行軟件應用程序開(kāi)發(fā),并為各外設模塊編寫(xiě)軟件驅動(dòng)。
1.控制命令輸入子程序
現場(chǎng)控制命令輸入使用6個(gè)按鍵模擬遙控器輸入。
按鍵輸入采用中斷響應機制,NIOS處理器中斷機制最多允許64個(gè)異常,包括外部硬件中斷源、內部異常源和直接軟件異常。按鍵中斷服務(wù)程序完成把新命令狀態(tài)字(6bits)讀入命令緩沖區,同時(shí)把新命令狀態(tài)位置為高。
2.串行通信接口子程序
串口通信采用中斷響應機制,中斷服務(wù)程序完成數據包頭的檢測,數據包的接收,校驗,并給新數據包接收標志位置高。串口數據包解碼子程序,去除包頭包尾,解讀命令碼,執行相應處理程序。本子程序測試在實(shí)驗板上進(jìn)行,實(shí)現與PC機串口通信。實(shí)驗過(guò)程為,從PC機上串口調試器軟件發(fā)送一組數據包到實(shí)驗板上,實(shí)驗板上系統接收數據包并校驗,解讀。如果檢驗碼正確,則再把改數據打包加上校驗和,發(fā)送到PC機上。
3.控制器應用程序設計
控制器頂層軟件應用程序流程圖如圖3所示。
圖3 應用軟件流程圖
初始化完成溫度給定值設置,顯示寄存器設置初值等工作,設備檢測完成檢測各外設是否完好,否則發(fā)出錯信號。接著(zhù),檢查新按鍵狀態(tài)位,看是否有新的按鍵命令輸入,如果有,則調用按鍵處理子程序,否則繼續檢查是否有新數據從串口輸入,如果有,則調用串口數據處理子程序,否則進(jìn)入A/D采集程序,把采集到的現場(chǎng)溫度值與給定值比較,如果差值不在允許范圍內,則調用智能算法模塊,否則返回。
評論