林正昊,朱峪君,蔡婧瑤
目前太陽能無線充電寶所用的控制方式與產品所展現的性能等方面逐漸不能滿足科學需求,其中控制方式繁瑣,系統運行時往往出現卡頓或者“死機”現象以及反映時間緩慢,并且目前的太陽能無線充電寶產品的功能單一而且此系統無法擴展,因此把嵌入式系統方案引入到太陽能無線充電寶系統中很有必要,從而可以推動了此產品和相關行業快速發展。
本太陽能無線充電寶實現功能如上:
(1)通過無線充電器并接給鋰電池供電,同時給檢測是否再給鋰電池進行充電。
(2)鋰電池經過升壓模塊,給整個單片機系統及顯示進行供電。
(3)顯示充電式累計時間:達到進行充電計時,達不到自動停止計時,計時格式時/分/秒/0.1秒。液晶顯示是否在充電狀態。無線充電器模塊分兩部分,一部分接系統經升壓模塊12V供電輸出感應,另一部分接收感應,經降壓模塊輸出5V給設備充電。
系統網關架構主要有信號采集處理模塊,控制中樞系統模塊與外圍執行機構組成,太陽能無線充電寶系統設計架構如上圖1所示。

圖1 嵌入式網關架構設計圖
太陽能無線充電寶系統主要由信號外界環境輸入模塊、單片機控制中樞、信號輸出模塊和通訊部分四個部分組成。其中信號采集模塊是電壓信號,MCU控制中心有STC89C52最小系統(晶振電路:提供系統運行頻率、復位電路:初始化系統運行、程序燒寫電路)和電源轉換電路構成;執行機構有升壓模塊和無線充電模塊。
3.1.1 太陽能供電電路設計
本系統中選擇9V多晶硅太陽能電池板作為發電元件,太陽能發電后經過TP4056模塊給鋰電池進行充電,同時因為鋰電池的電壓為3.7V-4.2V,而本設計的單片機等電路均為5V供電,所以用升壓模塊將3.7V的電壓升到5V來給設備供電。太陽能電池板輸出串接一個二極管,單向導電作用,保護太陽能電池板。
3.1.2 無線充電模塊電路設計
選用XKT412-01無線充電模塊,由一個發射模塊和一個接受模塊組成,無線充電原理是通過電磁波感應原理進行能量傳輸的。在能量發射端和能量接收端各有一個電磁線圈,其中發射端線圈連接有線電源產生電磁信號,接收端線圈感應發送端的電磁信號從而產生電流給電池充電。發送和接收的有效距離是1-20mm。為了防止無線模塊對系統電源的干擾,在電路中串聯二極管。
3.1.3 鋰電池充電升壓電路
鋰電池充電時,需增加充電管理電路,防止電池長期處于過飽和狀態和饋電狀態,本系統采用TP4056充電管理模塊,TP4056是一款完整的單節鋰離子電池采用恒定電流/恒定電壓線性充電器,底部帶有散熱片的SOP8/MSOP8封裝與外部元件數目少。鋰電池輸出電壓是3.7V,而整個系統需要電壓是5V,所以需升壓,本系統采用是DC-DC升壓模塊0.9V~5V升5V 600MA。模塊的輸入電壓寬廣,一般為1V~5V之間任何直流電壓值,輸出都是5V電壓。
3.1.4 LCD1602液晶屏顯示電路設計
LCD1602由數字量控制,控制準確度高。LCD1602主要有顯示晶元、處理單元和存儲器組成。三類存儲分別存儲不同的內容:DDRAM存儲控制中心發送的數據;CGROM存儲處理單元輸出數據;CDROM存儲液晶屏底層顯示程序。
LCD1602液晶屏供電電壓范圍5V±0.5V,額定電壓是5V,本系統輸入電壓為5V。該液晶顯示模塊采用雙電源供電,一路是系統硬件單元供電,另一路是背光電源。共有8根數據線,總共可以顯示28種類字符,液晶屏處理單元收到控制中心發來的二進制數據,經過字符變量對比輸出需要顯示的內容。
系統功能與元器件選型確定后進行原理圖設計,原理圖把系統需要的元器件按照功能電路進行電氣連接(圖2)。

圖2 系統接線圖
主要系統信號采集與處理程序設計:
為滿足監測實時性,單片機采用定時中斷的方式訪問存儲器,進行信號參數采集。首先設置單片機的計數器為定時方式,開啟計數器,定時長短可隨需要靈活設定。然后單片機運行其它程序,等待定時中斷的到來。定時中斷發生之后進入中斷服務程序,調用內部存儲器的控制操作程序,進行數據采集,并將采集來的數據進行處理,最后重新初始化定時中斷,返回。如圖3所示。

圖3 中斷處理流程圖
通過LCD1602液晶屏作為顯示模塊,LCD1602模塊在系統向它傳輸信號或者指令之前都會查詢運行狀態,只能當LCD1602模塊工作在休閑狀態時,系統才能對它傳輸信號或者指令,否則傳輸的信號或者指令不會被執行。其操作時序包括讀操作時序和寫操作時序。
系統調試主要分為軟件調試、關鍵器件調試與硬件調試,其中軟件測試包括系統在線仿真(運用仿真器)、功能模塊運行參數確定和中斷優先級判斷等方面;關鍵器件調試包括電源轉換芯片參數調試、輸入與輸出信號靈敏度調試;硬件調試主要包括系統功能性驗證。
5.1.1 系統軟件調試
系統軟件編譯沒有問題后,進入在線仿真后,首先單步運行查看系統流程是否滿足設計要求,若不滿足則需要調整軟件結構,當滿足設計要求后,判斷各個功能模塊默認參數是否正確,子函數定義是否合理,最后給程序打不同的斷點確認中斷優先級是否正確。經實際調試后太陽能無線充電寶都滿足系統要求。
5.1.2 關鍵器件驗證
單片機芯片驗證:系統啟動之前一定檢查整個系統的供電電源正否正常,去掉單片機芯片,把系統接入電源,用萬用表測量電源端口輸入電壓是否為5V,經過萬用表測量端口電壓為4.9V,這個電壓滿足系統設計要求,然后測量單片機兩處供電電壓是否正常,實際測量電壓為4.85V,滿足單片機工作電壓范圍,斷開系統電源,把單片機芯片插入到底座上。啟動系統電源,再次測量系統各處電壓是否正常,實際測試所有電壓都正常,按鍵復位按鍵,讓系統手動復位一次。經過實際測試,單片機芯片可以正常工作。
5.1.3 系統硬件調試
在本次撰寫的軟件編譯無Bug后,用上載器或者放置器燒寫到單片機芯片中,開始進行功能與性能驗證,主要從以上三個方面調試。
(1)控制中樞驗證:系統啟動之前一定檢查整個系統的供電電源正否正常,去掉單片機芯片,把系統接入電源,用萬用表測量電源端口輸入電壓是否為5V,經過萬用表測量端口電壓為4.9V,這個電壓滿足系統設計要求,然后測量單片機兩處供電電壓是否正常,實際測量電壓為4.85V,滿足單片機工作電壓范圍,斷開系統電源,把單片機芯片插入到底座上。啟動系統電源,再次測量系統各處電壓是否正常,實際測試所有電壓都正常,按鍵復位按鍵,讓系統手動復位一次。
(2)功能驗證:經過上步驗證無誤后,進入功能驗證,對著系統功能設計要求,逐一驗證所有功能,經過實際功能驗證,設計的系統完全滿足設計需求。
(3)可靠性驗證:把產品實物放在高溫40度環境中運行8小時,經測試,本設計系統可以在高溫40度環境穩定運行。
5.2.1 調試數據分析
太陽能無線充電寶系統在實際環境運行時,會因為環境系數(溫濕度、噪音等)參數或者人為操作不當帶來動作誤差或者系統本身特性會影響系統的系統運行,在測試設備和測試方法上造成一定的干擾因素從而影響系統的輸出結果不滿足設計要求,從而在某一方面會干擾到系統采集到的輸入參數與實際輸入的參數有差距。實際運行時,輸入信號經過采集端到數據處理中心,系統自身原因導致一定時間延時,從而造成系統處理的參數不精確產生誤差。由于誤差量的存在使系統輸出結果非真實值,需去除誤差,現代系統控制中主要運用修正的策略來彌補誤差,本系統屬于智能控制簡單系統,對控制要求不高,查閱文獻資料得到修正值,從而確定系統的輸出結果滿足要求。
5.2.2 測試問題定位與解決
(1)電源異常:系統首次上電,系統無法啟動,則切換電源對供電系統檢查。首先拔掉系統電源線,然后用萬用表阻抗檔位測量系統電源正負極有沒有短路,測試發現是正常的,然后單獨給電源線供電,并用萬用表直流電壓檔測量5V電源是否正常,測試同樣正常,可排除外部供電電源問題;把電源線接入系統并去掉單片機芯片和液晶模塊,然后接入5V電源,測得系統開關處5V電源正常;接上來把液晶模塊接入系統中,接入5V電源,同樣測得5V電源正常同時液晶屏正常顯示;但是把單片機芯片接入系統中,發現系統電源無法工作,經測量發現單片機芯片管腳電源正負極短路了,主要是焊接連錫造成的,當用電烙鐵把連錫去掉,系統電源工作正常。
(2)系統頻繁死機:系統在運行時,當輸入連續采集信號,極易造成系統死機,而且系統也不會啟動自復位程序。經過程序在線仿真發現當系統在一個周期內連續給定兩次輸入采集信號,造成軟件在兩種中斷出不來,進行反復循環運行。造成此種Bug是因為兩種中斷采用同一定時器原因,當把中斷1采用定時器0,中斷2采用定時器1,此種問題就可以解決。