引言
SOPC(System On a Programmable Chip)稱為可編程片上系統(tǒng),它是基于用可編程邏輯器件(FPGA或CPLD)的可重構(gòu)的片上系統(tǒng)(SOC)??删幊唐舷到y(tǒng)(SOPC)是AL-TERA公司提出的一種靈活、高效的SOC解決方案。它將處理器、存儲(chǔ)器、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ì)者可以很方便地把處理器,存儲(chǔ)器、其它外設(shè)模塊和必要的PIO接口連接起來開發(fā)成一個(gè)完整的系統(tǒng)。在SOPC Builder。圖形用戶界面下,設(shè)計(jì)者還可以管理IP模塊.設(shè)置系統(tǒng)參數(shù)并選擇可用的端口和外設(shè)。完成設(shè)計(jì)之后,系統(tǒng)啟動(dòng)生成程序,就會(huì)生成大量的輸出文件,包括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)行、停止、單步、存儲(chǔ)器等)、硬件斷點(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è)、存儲(chǔ)器和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ā)展方向。