引言
SOPC(System On a Programmable Chip)稱為可編程片上系統(tǒng),它是基于用可編程邏輯器件(FPGA或CPLD)的可重構的片上系統(tǒng)(SOC),??删幊唐舷到y(tǒng)(SOPC)是AL-TERA公司提出的一種靈活、高效的SOC解決方案,。它將處理器,、存儲器、I/O口等系統(tǒng)設計需要的功能模塊集成到一個可編程器件上,,構成一個可編程的片上系統(tǒng),。SOPC結合了SOC和CPLD、FPGA各自的優(yōu)點,,具備有以下基本特征:至少包含一個嵌入式處理器內核,;具有小容量片內高速RAM資源;豐富的IP核資源可供選擇,;足夠的片上可編程邏輯資源,;處理器調試接口和FPGA編程接口;包含部分可編程模擬電路,;單芯片,、低功耗、微封裝,。
溫濕度是工農(nóng)業(yè)生產(chǎn),、氣象、環(huán)保,、國防,、科研、航天和科學實驗中的重要參數(shù),,而溫濕度自動控制系統(tǒng)廣泛應用在工業(yè)生產(chǎn),、醫(yī)藥、農(nóng)作物栽培和科學實驗等許多領域,。目前國內市場上大多數(shù)的溫濕度自動控制系統(tǒng)是基于單片機或ARM系列芯片來設計的,。對比這兩種設計,基于SOPC的溫濕度自動控制系統(tǒng)的集成度更高也更加輕便,;比基于單片機的溫濕度自動控制系統(tǒng)穩(wěn)定度和精度更高,而比基于ARM系列芯片的溫濕度自動控制設計方式更方便,,設計周期更短.成本價更有優(yōu)勢,。
1 系統(tǒng)構成
溫濕度自動控制系統(tǒng)的總體框圖如圖1所示,。該系統(tǒng)從結構上分為兩層:第一層是由PC機組成的,作為上位機,;第二層是由Nios系統(tǒng)和外圍設備組成的,,作為下位機,上位機與下位機之間采用RS485總線進行通信,。
下位機結構框圖如圖2所示.它是由Nios系統(tǒng)和執(zhí)行機構及顯示,、輸入、輸出端口組成的,。Nios系統(tǒng)由CPU(Nios),、片上RAM、定時器,、總線,、異步串口UART和通用PIO組成。其中.NIOS系統(tǒng)通過PIO與A/D轉換器,、鍵盤,、LED顯示器、執(zhí)行機構等連接,。
溫濕度自動控制系統(tǒng)的工作過程是:首先通過溫濕度傳感器進行信息采集,;其次是NIOS系統(tǒng)把采集到的信息通過UART接口傳送至上位機.上位機對采集到的信息進行分析處理;最后,,NIOS系統(tǒng)根據(jù)上位機的分析處理結果對終端控制設備輸出決策的指令,,如果溫度或濕度超限,則顯示并報警,,同時驅動風扇或加熱器等設備,。該控制系統(tǒng)在下位機還增加了鍵盤輸入,這樣下位機可以單獨使用,,從而使下位機本身成為一個獨立的控制系統(tǒng),。我們下面重點介紹下位機的設計過程。
2 系統(tǒng)下位機的硬件設計
SOPC系統(tǒng)的硬件開發(fā)步驟如下:用SOPC Builder生成NiosⅡ嵌入式處理器,;用QuartusⅡ將NiosⅡ嵌入式處理器和其他邏輯電路結合進行設計輸入,;然后進行編譯(包括分析綜合和布局布線);最后通過下載電纜將硬件配置數(shù)據(jù)下載到FPGA中,。
本系統(tǒng)的下位機硬件設計采用ALTERA公司的SOPC開發(fā)工具(即SOPC Builder)進行設計,。ALTERA公司提供的SOPC Builder工具可以方便設計個性化的NiosⅡ軟核。裁剪掉不需要的外設以節(jié)省系統(tǒng)資源,,增加需要的接口,。利用SOPC Builder工具設計者可以很方便地把處理器,存儲器,、其它外設模塊和必要的PIO接口連接起來開發(fā)成一個完整的系統(tǒng),。在SOPC Builder,。圖形用戶界面下,設計者還可以管理IP模塊.設置系統(tǒng)參數(shù)并選擇可用的端口和外設,。完成設計之后,,系統(tǒng)啟動生成程序,就會生成大量的輸出文件,,包括HDL邏輯文件,、程序的頭文件和庫文件等。這些文件都包含在NiosII IDE開發(fā)環(huán)境中,,在此軟件開發(fā)平臺上就可以進行NiosII的軟件開發(fā)了,。
2.1 NiosⅡ軟核處理器
NiosⅡ軟核處理器是ALTERA公司推出的一種通用32位RISC嵌入式處理器。它特別為可編程邏輯進行了優(yōu)化設計,,并配備有功能完善的開發(fā)套件,。包括C/C++編譯器、集成開發(fā)環(huán)境(1DE),、JTAG調試器等,,是ALTERA公司可編程單芯片系統(tǒng)解決方案的核心。
作為軟核處理器,。NIOS II提供了可配置的硬件及軟件調試特性.包括基本的JTAG的運行控制(運行,、停止、單步,、存儲器等),、硬件斷點、數(shù)據(jù)觸發(fā),、片內和片外跟蹤,、嵌入式邏輯分析儀。這些強大的工具可以在開發(fā)階段使用,,調試通過后便可以去掉,,節(jié)省資源。NIOSⅡ處理器還提供了高,、中,、低三種不同性能的內核,通過與ALTERA提供的超過60種IP核(如UART,、時鐘,、DMA、SDRAM,、并行IPO等)結合使用,,設計師可以方便地針對特定的應用創(chuàng)建一個在處理器、外設、存儲器和PIO接口方面都完美的方案,。除此以外,,NIOSlI還有很多其他優(yōu)秀的特性,如指令定制,、硬件加速器等。
2.2 AVALON總線
AVALON總線是為了將片內處理器和外圍設備連接成可編程片上系統(tǒng)(SOPC)而設計的簡單總線結構,,該總線規(guī)定了控制器和從屬組件間的端口連接以及組件問通信的時序,。AVALON總線的基本傳輸模式是在一個主外設和一個從外設之間進行單個字節(jié)、半字或字的傳輸,。當一次傳輸結束后,,不論新的傳輸過程是否還是在同樣的外設之間進行,AVALON總線總是可以在下一個時鐘周期立即開始另一次傳輸,。AVALON總線支持多個總線主外設,,允許單個總線事務中在外設之間傳輸多個數(shù)據(jù)單元。這一多主設備結構為構建SOPC系統(tǒng)提供了極大的靈活性,,并且能適應高帶寬的外設,。
2.3 外圍設備
在該系統(tǒng)中.NIOS系統(tǒng)中包含有片上RAM、定時器,、異步串口UART和通用PIO等外圍設備,。這些外圍設備集成在SOPC BUILDER開發(fā)工具中,用戶只要將需要的外圍組件與CPU通過AVALON總線集成在FPGA中,,就可以完成整個下位機硬件設計,,從而縮短了設計周期。
2.4 溫濕度傳感器
該系統(tǒng)選用的溫濕度傳感器是SHTll,,該傳感器是瑞士Sensirion公司生產(chǎn)的具有PC總線接口的單片全校準數(shù)字式相對濕度和溫度傳感器,。該傳感器采用獨特的CMOSens TM技術,具有數(shù)字式輸出,、免調試,、免標定、免外圍電路及全互換的特點,。
3 系統(tǒng)下位機的軟件設計
系統(tǒng)下位機軟件設計是在NIOS IDE開發(fā)環(huán)境中進行的,,在SOPC Builder生成的軟件基礎上,利用C/C++語言編寫源程序,,然后經(jīng)過編譯,、連接、調試生成可執(zhí)行文件.最后通過下載電纜對可執(zhí)行程序進行調試和運行,。系統(tǒng)下位機軟件主要包括初始化,、數(shù)據(jù)采集子程序、串口接收與發(fā)送子程序,、溫濕度控制子程序及顯示子程序,。在這里重點介紹溫濕度控制子程序的流程圖.如圖3所示,。
該溫濕度自動控制系統(tǒng)的溫度要求控制在5℃~30℃之間,若采集到的溫度T>30℃,,程序轉向Jw(降溫處理程序),,并發(fā)出報警信號;若T<5℃,,則程序轉向SW(升溫處理程序),。并發(fā)出報警信號;若30℃>T>5℃,,則程序轉向顯示子程序并返回主程序.濕度控制過程和溫度類似,。
4 結論
本系統(tǒng)利用SOPC技術,將信號采集模塊和微處理模塊巧妙的集成到一片F(xiàn)PGA內部.并利用可編程邏輯的靈活性和NIOS II的強大處理能力,,方便地實現(xiàn)了溫濕度自動控制的功能,。該系統(tǒng)的實現(xiàn)功能還是相對比較簡單的,由于FPGA內部還有大量的邏輯資源可以利用.因此可以實現(xiàn)更為復雜的功能,。
實際結果表明:基于SOPC的溫濕度自動控制系統(tǒng)運行正常,、數(shù)據(jù)傳輸可靠、操作管理方便,,如果再配備上485總線,。整個系統(tǒng)將如虎添翼。
由于FPGA的可編程特性,,可以在不改變任何外圍電路的情況下對系統(tǒng)進行軟硬件升級,,大大延長了系統(tǒng)的壽命周期,這一點也是相對于其它控制系統(tǒng)的優(yōu)勢,,采用SOPC方案進行系統(tǒng)設計,,正符合當今科技的發(fā)展方向。