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