2、硬件設(shè)計(jì)原理
電源單元設(shè)計(jì)原理:
電源單元由兩部分構(gòu)成,其中220V交流電源轉(zhuǎn)12V直流電源模塊使用的是成品的開關(guān)電源模塊,可以提供最大1A的電流,滿足系統(tǒng)需求,并且開關(guān)電源體積小效率高。將這個(gè)模塊集成在系統(tǒng)上另一個(gè)原因是方便用戶使用,直接通上220V電源就可以使用。
電源單元的另一部分是將12V直流轉(zhuǎn)換為正負(fù)5V。這部分使用兩片MC34063電源芯片,通過設(shè)計(jì)合理的外圍電路,可實(shí)現(xiàn)分別輸出+5V電壓和-5V電壓。其中電流采集單元需要雙極性電源,所以其中一路MC43063產(chǎn)生-5V電壓。MC34063電源芯片可以達(dá)到較高的效率,價(jià)格低廉,性能可以滿足系統(tǒng)設(shè)計(jì)要求,故而選該芯片作為電源芯片。
功率輸出單元設(shè)計(jì)原理:
功率輸出單元主要包括繼電器,三極管等。繼電器用來控制對(duì)應(yīng)插座的電源通斷,三極管則用來控制繼電器的通斷,單片機(jī)通過控制三極管進(jìn)而實(shí)現(xiàn)對(duì)插座的控制。其中繼電器型號(hào)為HJR-3FF,240V時(shí)可以通過7A電流,該繼電器需要12V電源供電,這樣可以起到與控制單元電氣隔離的作用。三極管采用8050,最大可以提供1A的驅(qū)動(dòng)電流,完全可以滿足設(shè)計(jì)要。
控制單元設(shè)計(jì)原理:
該系統(tǒng)的主控芯片選用深聯(lián)華SC89F5162單片機(jī),SC89F5162是一種高速高效率8051兼容單片機(jī)。在同樣的震蕩頻率之下,較之傳統(tǒng)的8051單片機(jī)它具有更快的速度,性能更優(yōu)越。
該系統(tǒng)的設(shè)計(jì)使用了單片機(jī)的定時(shí)器0、SPI、ADC、EUART1、IO資源。定時(shí)器是為串口接收數(shù)據(jù)提供定時(shí)時(shí)間,用來判斷一幀數(shù)據(jù)是否接收完畢;SPI控制93C46,保存和讀出插座的狀態(tài)數(shù)據(jù);ADC用來采集電流采集單元的輸出電壓,為檢測(cè)是否過流提供數(shù)據(jù);EUART1是和WIFI模塊進(jìn)行通信的,接收來自手機(jī)客戶端的數(shù)據(jù),并向客戶端返回?cái)?shù)據(jù)。IO用來控制時(shí)鐘單元和功率單元等。
控制單元是系統(tǒng)的核心,也是知識(shí)產(chǎn)權(quán)保護(hù)的核心,保護(hù)好單片機(jī)不被破解是重要方面,深聯(lián)華單片機(jī)采用了多種防破解技術(shù),高達(dá)32位的密碼生成器,白噪聲密碼沒有規(guī)律可循等等這些特點(diǎn)決定了代碼的安全性很高,這就能很好的保護(hù)開發(fā)者的利益。
電流采集單元設(shè)計(jì)原理:
對(duì)交流電流進(jìn)行采集需要用到交流互感器,該系統(tǒng)采用DL-CT03C1.0精密電流互感器,變比為1:1000,最大可測(cè)電流為10A,輸出端最大可接電阻為50歐姆,這里選擇47歐姆電阻。由于電阻上電壓很低,所以不可以直接對(duì)電阻上的交流電壓進(jìn)行整流,因此在整流之前使用LM358對(duì)交流電壓信號(hào)進(jìn)行7.8倍放大。運(yùn)放所放大的信號(hào)為交流信號(hào),需要一個(gè)雙極性電源進(jìn)行供電,正好使用電源模塊提供的正負(fù)5V電源。將放大的電壓信號(hào)通過橋整流電路進(jìn)行整流,然后使用電容濾波,再通過一個(gè)低通濾波電路將信號(hào)送入單片機(jī)AD引腳。
存儲(chǔ)單元設(shè)計(jì)原理:
存儲(chǔ)芯片選用93C46芯片,該芯片使用SPI通信方式,具有128個(gè)字節(jié)的容量。系統(tǒng)需要保存的數(shù)據(jù)量小,該芯片可以滿足需求。
實(shí)時(shí)時(shí)鐘單元設(shè)計(jì)原理:
實(shí)時(shí)時(shí)鐘單元采用DS1302芯片,該芯片在掉電時(shí)可以使用備用電源,數(shù)據(jù)通信使用串行方式,占用IO較少,芯片價(jià)格低廉計(jì)時(shí)精確,完全能滿足系統(tǒng)設(shè)計(jì)需求。
WIFI模塊單元:
WIFI模塊使用的是成品模塊,通過串口與單片機(jī)通信。該模塊可通過電腦設(shè)置參數(shù),使用方便。
3、軟件設(shè)計(jì)原理
在單片機(jī)軟件設(shè)計(jì)時(shí)采用模塊化編程的方法以及分層設(shè)計(jì)的思想。首先設(shè)計(jì)使用到的單片機(jī)資源的驅(qū)動(dòng)程序,然后設(shè)計(jì)使用到的芯片的驅(qū)動(dòng)程序,最后設(shè)計(jì)應(yīng)用層的程序。
下面介紹各個(gè).c文件的主要內(nèi)容:
Initial.c文件主要是單片機(jī)系統(tǒng)時(shí)鐘、定時(shí)0、串口1的初始化函數(shù),以及串口發(fā)送數(shù)據(jù)的函數(shù)。
SPI.c文件包括單片機(jī)SPI資源的初始化,以及93C46芯片的驅(qū)動(dòng)程序。
DS1302.c文件包括DS1302芯片的驅(qū)動(dòng)程序,主要是對(duì)芯片的初始化,讀寫函數(shù)等。
ADC.c文件主要包括對(duì)單片機(jī)ADC資源的初始化函數(shù),以及對(duì)采集到的數(shù)據(jù)進(jìn)行處理的函數(shù),文件使用的是官網(wǎng)提供的,但是有些地方有問題,進(jìn)修改后可以正常使用。
OutletStatuePro.c文件主要是對(duì)插孔的結(jié)構(gòu)體數(shù)據(jù)進(jìn)行處理的函數(shù),包括設(shè)置插孔的狀態(tài),得到插孔的狀態(tài),設(shè)置插到打開或者關(guān)閉的定時(shí)時(shí)間等等。
Main.c文件是項(xiàng)目的主文件,這里首先是調(diào)用各個(gè)模塊的初始化函數(shù),以及調(diào)用相應(yīng)的驅(qū)動(dòng)函數(shù)完成對(duì)應(yīng)的功能。
下面具體介紹程序執(zhí)行流程:
程序開始運(yùn)行后首先調(diào)用各個(gè)模塊的初始化函數(shù),完成對(duì)單片機(jī)以及其他芯片的初始化工作。下一步就是讀取93C46中數(shù)據(jù),然后就是就如主循環(huán)。在主循環(huán)中首先判斷串口是否正在接收數(shù)據(jù),如果正在接收數(shù)據(jù)則不執(zhí)行解析,如果接收完畢則開始解析接收到的數(shù)據(jù)。根據(jù)不同的指令執(zhí)行相應(yīng)的操作,具體操作可看代碼注釋。解析工作完成后讀取一次DS1302的數(shù)據(jù),然后開始根據(jù)各個(gè)插孔的當(dāng)前狀態(tài)執(zhí)行相應(yīng)的操作,在這個(gè)處理過程中使用了狀態(tài)機(jī)的概念,根據(jù)插孔的狀態(tài)執(zhí)行相應(yīng)的操作,并且判斷是否有插座處于開啟狀態(tài),如果有的話就啟動(dòng)AD,判斷當(dāng)前功率是否超過設(shè)定功率,如果超過了設(shè)定功率則關(guān)閉所有插孔。
評(píng)論