基于PSoC單片機(jī)的燃?xì)庾冾l輸配與精確計(jì)量實(shí)現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/171346.htm
3.3 一器多控變頻電路的設(shè)計(jì)
該部分電路用以實(shí)現(xiàn)“手動(dòng)/自動(dòng)變頻”和“工頻/變頻狀態(tài)的切換”。這里選用日本富士FRN75P11S-4CX風(fēng)機(jī)專用變頻器,切換電路采用傳統(tǒng)的接觸器—繼電器控制。變頻加/減速,手動(dòng)控制通過一個(gè)1-5kll的可調(diào)電阻器實(shí)現(xiàn);自動(dòng)控制通過0~5V的DC變化輸入實(shí)現(xiàn)。構(gòu)成如圖4所示。
3.4 信號(hào)的輸入與輸出
設(shè)計(jì)系統(tǒng)應(yīng)用在
4 PSoC單片機(jī)測控系統(tǒng)的設(shè)計(jì)
11位A/D轉(zhuǎn)換器,選用DelSigll用戶模塊(△—∑型A/D),占用一PSoC模擬模塊、一PSoC數(shù)字模塊和專用的采樣抽取器,為增強(qiáng)實(shí)時(shí)性與精度而取其最大采樣率7.8ksps(即每次采樣需128.2μs)。
6位A/D轉(zhuǎn)換器,選用SAR6用戶模塊(逐次逼近型A/D),轉(zhuǎn)換時(shí)間25μs,占用一PSoC模擬模塊。
8位D/A轉(zhuǎn)換器,選用DAC8用戶模塊(電壓輸出型D/A),其時(shí)鐘更新率為125kHz(即每次變換需31μs)。
A/D與D/A的參考電壓設(shè)定:AGnd=0V,AVdd=5V。
切換控制輸出I/O口,選定內(nèi)部上拉電阻輸出,以得到大的驅(qū)動(dòng)能力。取工/變頻切換控制為5個(gè)。
LCD模塊接口,選定LCD用戶模塊,該模塊使用標(biāo)準(zhǔn)HD44780LCD顯示驅(qū)動(dòng)協(xié)議,占用7個(gè)I/O口,驅(qū)動(dòng)顯示2x16個(gè)8x8點(diǎn)陣字符。
E2ROM,選用E2PROM用戶模塊。這是使用內(nèi)部Flash memory模擬的E2ROM,不限容量大小,取為2KB。
串行通信口, 選用UART用戶模塊(8位通用UART),占用2個(gè)PSoC數(shù)字模塊和2個(gè)I/O口,設(shè)定其初始值為96-N-8-1,為將來擴(kuò)展連接Modem預(yù)留一個(gè)I/O口。
定時(shí)器,選用Timer8用戶模塊(8位減計(jì)數(shù)型),占用一PSoC數(shù)字模塊;一定時(shí)器周期設(shè)定為變頻器“工/變頻切換”的時(shí)間值;一定時(shí)器周期取最大值,以用于流量累計(jì)。
OSC振蕩器全部選定用內(nèi)部模塊,外圍不再配備晶體。啟用內(nèi)部看門狗和實(shí)時(shí)時(shí)鐘(RTC)功能。
確定采用4個(gè)中斷:壓力轉(zhuǎn)換中斷(11AD_ISR)、鍵盤操作中斷(6AD—ISR)、工/變頻切換中斷(Tliner8—ISR)、串行接收中斷(Uart_ISR)。 中斷優(yōu)先級(jí)編排如下:11AD_ISR、Timer8_ISR、6AD_ISR、Uart_ISR。
打開PSoC Designer IDE應(yīng)用軟件,選用CY8C26443器件,指定編程語言(匯編或C語言),創(chuàng)建項(xiàng)目工程;在軟件的器件編輯器窗口中,按上述選擇,配置各個(gè)用戶模塊。本設(shè)計(jì)共使用8個(gè)PSoC數(shù)字模塊、5個(gè)PSoC模擬模塊、24個(gè)I/O口。器件編輯器的使用,大多是圖形和文本選擇操作,十分簡易直觀,這里不再贅述。
用戶模塊配置完成后,在IDE環(huán)境中,點(diǎn)擊“GenerateApplication Files”按鈕,產(chǎn)生boot.sam和PSoCconfig.a(chǎn)sm文件,并生成應(yīng)用程序接口函數(shù)(APl)與中斷服務(wù)程序、主程序框架文件,以便填寫應(yīng)用代碼、編制用戶程序。
boot.sam和PSoCconfig.a(chǎn)sm文件,是所有程序的基礎(chǔ),boot.sam文件定義了系統(tǒng)啟動(dòng)和執(zhí)行的次序,PSoCconfig.a(chǎn)sm文件包含了進(jìn)入系統(tǒng)的配置。
4.2 軟件設(shè)計(jì)的整體構(gòu)思
主程序完成初始化設(shè)置并循環(huán)采樣溫度、壓力、差壓,選擇適當(dāng)量程計(jì)算流量并累計(jì)、存儲(chǔ)與顯示。
壓力轉(zhuǎn)換中斷程序(11AD_ISR)據(jù)壓力實(shí)測值與要求值,確定變頻加/減速和工/變頻轉(zhuǎn)換中斷的啟停。
鍵盤操作中斷(6AD_ISR),識(shí)別操作的按鈕,進(jìn)行參數(shù)預(yù)置、狀態(tài)顯示、記錄查看等。
工/變頻切換中斷(Timer8a_ISR),完成指定端口的工頻與變頻的切換,并設(shè)置相關(guān)標(biāo)記。
串行接收中斷(Uart_ISR),連接PC或做遠(yuǎn)程通信。
在PSoC Designer IDE環(huán)境的應(yīng)用程序編輯器窗口中編制程序,編譯所有文件,生成可下載或仿真的.rom文件。
4.3 軟件仿真與測試
使用Cypress的PSoC仿真器(1CE)及其Designer IDE調(diào)試器窗口環(huán)境,進(jìn)行程序仿真和測試。重點(diǎn)說明兩點(diǎn):
(1)斷點(diǎn)調(diào)試和動(dòng)態(tài)事件點(diǎn)調(diào)試
斷點(diǎn)調(diào)試,與很多常用器件調(diào)試工具功能類似,在此不再贅述,著重說明動(dòng)態(tài)事件點(diǎn)調(diào)試。動(dòng)態(tài)事件點(diǎn)調(diào)試是Cypress很有特色的工具。動(dòng)態(tài)事件點(diǎn)是定義的可滿足許多條件的復(fù)雜斷點(diǎn),可控制調(diào)試在動(dòng)態(tài)事點(diǎn)到來時(shí)停止、開/關(guān)跟蹤文件或觸發(fā)一外部引腳。使用動(dòng)態(tài)事件點(diǎn)調(diào)試,可觀察到很多斷點(diǎn)調(diào)試得不到的程序邏輯設(shè)計(jì)錯(cuò)誤。
(2)各個(gè)程序段執(zhí)行時(shí)間的調(diào)試
關(guān)掉所有中斷,測定主程序中流量計(jì)算循環(huán)程序的執(zhí)行時(shí)間;一次開放一個(gè)中斷,測定每個(gè)設(shè)計(jì)中斷的執(zhí)行時(shí)間。適當(dāng)設(shè)置斷點(diǎn),正常執(zhí)行程序,測定每個(gè)中斷與主程序流量計(jì)算循環(huán)的執(zhí)行周期。
PSoC單片機(jī)的各種中斷功能能很好地滿足現(xiàn)代嵌入應(yīng)用,這里構(gòu)建一個(gè)基于PSoC單片機(jī)的實(shí)時(shí)操作系統(tǒng)(RTOS)的雛形,是有任務(wù)中斷的單調(diào)比例調(diào)度類型。因此,可以在無法預(yù)知軟件整體邏輯設(shè)計(jì)是否滿足工業(yè)測控實(shí)際的情況下,用有任務(wù)中斷的單調(diào)比例調(diào)度的條件要求和上述測量時(shí)間值,在理論上,去恒量一下軟件整體邏輯設(shè)計(jì)的合理性,并進(jìn)行適當(dāng)調(diào)整。
有任務(wù)中斷的單調(diào)比例調(diào)度的條件公式:
式中,n是最大任務(wù)數(shù),E是任務(wù)j的執(zhí)行時(shí)間,P是任務(wù)j的周期,B是任務(wù)j的阻塞時(shí)間。
4.4 程序的ISSP下載
PSoC單片機(jī)支持在系統(tǒng)串口編程(1SSP),可以通過UART串口,輕易完成程序的ISSP下載。PSoC單片機(jī)Flash中內(nèi)含不能被覆蓋的ISP例程,只要復(fù)位重啟時(shí)硬件電路的ISP例程觸發(fā)按鈕有效,PSoC單片機(jī)就轉(zhuǎn)而ISSP編程操作。完成ISSP后,器件自動(dòng)從Flash的0x0址處執(zhí)行用戶代碼。ISSP例程的觸發(fā),即將器件PO.5口有效上拉。
4.5 軟件設(shè)計(jì)的注意事項(xiàng)
(1)SRAM空間的分配:用戶模塊配置信息、編程變量參數(shù)、上下文切換堆棧等,都占用SRAM空間。SRAM空間只有256B,雖然比傳統(tǒng)MCS51單片機(jī)擴(kuò)大了一倍,但還是十分有限。一定要合理選好開辟堆??臻g的大小和位置,以避免極端情況下程序跑飛。
(2)看門狗的使用:為防程序“跑飛”或“死機(jī)”。程序中,要及時(shí)“喂狗”(清零看門狗計(jì)數(shù)器)。關(guān)閉看門狗,調(diào)試好各個(gè)程序段,然后再打開看門狗調(diào)試。
(3)11位AD用戶模塊的動(dòng)態(tài)配置:輪流采樣現(xiàn)場壓力、溫度、差壓信號(hào),AD轉(zhuǎn)換器通常定位在壓力通道不斷地采樣壓力信號(hào),并在AD轉(zhuǎn)換中斷中完成變頻調(diào)速控制,只有在需要時(shí)才切換到溫度或差壓通道采樣。信號(hào)通道的切換,采用動(dòng)態(tài)用戶模塊配置完成,即在需要時(shí)改變用戶模塊配置寄存器值,定向到需要的信號(hào)通道。
使用PSoC單片機(jī)CY8C26443組成輸配控制與大流量范圍計(jì)量”合二為一,構(gòu)成電路簡單,免除了芯片選型和搭建復(fù)雜外圍電路之煩,明顯地增強(qiáng)了系統(tǒng)的穩(wěn)定可靠性,降低了生產(chǎn)成本。應(yīng)用所提供的開發(fā)工具,直接為設(shè)計(jì)生成API函數(shù),屏蔽了繁瑣的寄存器操作,方便了對(duì)器件內(nèi)部資源的調(diào)用,大大縮短了項(xiàng)目開發(fā)時(shí)間。同時(shí)因PSoC單片機(jī)CPU速度的自增強(qiáng),系統(tǒng)的數(shù)學(xué)運(yùn)算功能明顯提高,工業(yè)測控的實(shí)時(shí)性更強(qiáng)了。
評(píng)論