《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 太陽能電池測試軟件設計
太陽能電池測試軟件設計
來源:微型機與應用2013年第2期
紀 浩, 谷玉海, 徐小力
(北京信息科技大學 機電系統測控北京市重點實驗室,北京 100192)
摘要: 利用C++Builder開發環境設計上位機軟件來測試太陽能電池光譜響應、繪制測試曲線、輸出測試結果。下位機采用STM32F103VET單片機以USB人機接口類方式與上位機通信。實驗證明,軟件操作簡便,能夠穩定獲取數據并輸出結果。
Abstract:
Key words :

摘要:利用C++Builder開發環境設計上位機軟件來測試太陽能電池光譜響應、繪制測試曲線、輸出測試結果。下位機采用STM32F103VET單片機以USB人機接口類方式與上位機通信。實驗證明,軟件操作簡便,能夠穩定獲取數據并輸出結果。
關鍵詞:太陽能電池;C++Builder;USB-HID;測試軟件


1 系統總體結構及功能
    太陽能電池性能測試系統由硬件結構與測控軟件兩部分構成。硬件結構主要包括光路系統、樣品室與測量電路三部分,如圖1所示。軟件主要分為上位機軟件與下位機程序兩部分。

    太陽光模擬光源選用氙燈,因為其具有較寬且連續的光譜范圍,覆蓋紫外光至紅外光,是比較理想的模擬太陽光源。光源通過斬波器變為交變的復色光信號,再經光柵單色儀,為測試系統提供交變單色光信號。偏置光源的存在使系統具備了測試多節太陽能電池的條件,可選用氙燈、鹵鎢燈作為光源。待測太陽能電池樣品與已標定的標準探測器至于樣品室中的運動平臺上,通過數據采集卡與計算機相連。上位機軟件可對硬件系統進行狀態配置并獲取采集卡數據,經數據處理后生成標準探測器絕對光譜響應曲線、被測太陽能電池絕對光譜響應曲線以及量子效率曲線。
2上位機總體設計及數據處理
2.1 上位機總體設計

    上位機軟件作為人機交互的媒介,理應具備界面簡潔、便于用戶理解、操作簡便快捷的特點。鑒于C++ Builder這一高性能可視化集成開發環境具有大量可重用控件與強大的數據庫處理能力[1-2],本軟件選用其作為開發工具。軟件界面組成如圖2所示。

3.1 HID固件程序設計
    上位機檢測USB設備是通過對集線器接收端的電平信號的變化確定的,這就要求設備端D+或D-接上拉電阻至3.3 V電源,STM32F103單片機并沒有在此環節做內部上拉,故搭建一個軟上拉電路,用I/O口PE0電平變化模擬上拉電阻接通與斷開。USB部分硬件實現如圖5所示。

    HID設備與主機間的通信是通過USB的控制管道(默認管道即端點0)和中斷管道1完成的。HID設備的描述符包括設備描述符、配置描述符、接口描述符、端點描述符、字符串描述符、 HID描述符、報告描述符、實體描述符,其中前5個描述符屬于USB設備標準描述符,而后3個則為HID類設備特定描述符。通過對描述符的配置實現HID設備屬性的定義,如產品ID: idProduct(PID)、廠商ID: idVendor(VID),包括對端口的定義以及對報文格式的定義。
    主機與USB 設備最初的數據交換過程通過枚舉完成。USB-HID 類設備解析主機的請求,并在枚舉期間向主機發送描述符響應主機的請求。系統將太陽能電池短路電流數據作為一個報文,當短路電流測量完成后,USB設備將報文發向上位機,完成信息發送。HID固件程序流程圖如圖6所示。

3.1.1 USB設備標準描述符
    設備標準描述符主要是在usb_desc.c文件中定義,具體操作如下:
    (1)編輯CustomHID_DeviceDes-criptor設備描述符,在以小端模式定義設備的實驗用PID與VID為0×123 4與0×567 8。
    (2) 編輯ConfigurationDescriptor
配置描述符,定義接口編號為0、定義端點,定義接口協議為HID自定義設備。
    (3) 編輯Endpoint Descriptor端點描述符,定義輸入、輸出端點最大包長度為8 B。
    (4) 編輯CustomHID_ReportDescriptor報文描述符,設定8 B報文格式。
    (5) 編輯StringLangID、 String
Vendor、StringProduct、StringSerial描述符,設置設備廠商ID、產品ID以及產品序列號。
3.1.2 USB端點設置
   編輯usb_prop.c文件,配置端點,具體操作如下:
    (1) 編輯CustomHID_Reset(void)函數,初始化端點0和端點1,調用SetEPType()函數初始化端點0為控制端點類型、端點1為中斷端點類型。
    (2) 調用SetEPRxAddr()、SetEPTxAddr(),設置收發數據的地址。
    (3)調用SetEPTxCount()、SetEPRxCount(),設置收發數據長度為8 B。
3.1.3 主函數框架
    編寫main.c文件,完成下述內容:
    (1) 包含關鍵頭文件stm32f10x_lib.h、usb_lib.h、hw_
config.h。
    (2)調用Set_System()、USB_Interrupts_ConFig()、Set_USBClock()、USB_Init()函數配置系統時鐘、USB中斷、USB時鐘與初始化。
    (3) 編寫CustomHID_Send()數據發送函數,調用UserToPMABufferCopy(),將數據放入輸出Buffer,調用SetEPTxValid(ENDP1)使端點1有效以發送數據。
    (4) 編寫CustomHID_Receive()數據接收函數,調用PMAToUserBufferCopy()函數獲取數據,調用SetEPRxValid(ENDP1)函數使端點1有效以接收數據。
3.2上位機通信模塊設計
    C++ Builder集成開發環境調用Windows API函數開發出USB-HID程序模塊。通過調用Windows基礎庫函數獲取HID設備的全局唯一標識(GUID)、設備ID、設備接口、緩沖區指針等信息,最終獲取報文信息,解析數據交數據處理模塊進一步處理。上位機HID程序流程圖如圖7所示。

 

 

    上位機實現與USB-HID設備通信具體調用的函數有:
    (1) 使用HidD_GetGuid函數獲取128 bit GUID。
    (2) 使用SetupDiGetClassDevs函數獲取設備信息群。
    (3) 使用SetupDiEnumDeviceInterfaces函數識別HID接口。
    (4) 使用SetupDiGetDeviceInterfaceDetail函數獲取設備路徑。
    (5) 使用CreatFile函數開啟設備,使用CloseHandle函數釋放資源。
    (6) 使用HidD_GetAttributes函數獲取設備ID。
    (7) 使用HidD_GetPreparsedData函數與HidD_Free
PreparsedData函數取得緩沖區指針與釋放資源。
    (8) 使用WriteData函數、ReadFile函數發送、讀取報文。
4 軟件測試結果
    軟件檢測相關設備處于連接狀態,將標準太陽能電池與待測太陽能電池置于樣品室檢測臺上,軟件配置相關檢測參數,在掃描范圍300 nm~1 200 nm、波長間隔10nm、斬波器與鎖相放大器參考頻率為2 Hz、單點測試10次、緩沖時間10 s的狀態下,成功獲取USB-HID設備上傳的數據。上位機軟件調用TeeChart控件繪制出待測電池光譜響應曲線,測試結果如圖8所示。

    USB已經逐步取代了串口,成為現階段測試儀器常用的接口與通信方式,使儀器的通用性與易用性大大增強。系統采用USB通信方式,同時上位機軟件具備穩定準確的數據獲取能力,并以圖像方式準確直觀地顯示測試結果,具有一定的實用價值。
參考文獻
[1] 原雪, 徐朝陽, 朱春光,等. C++ Builder 6入門提高[M].長沙:國防科技大學出版社, 2002.
[2] 吳逸賢,吳目誠.精彩C++ Builder 6程序設計[M]. 北京:科學出版社, 2003.
[3] GB 11009-1989太陽能電池光譜響應測試方法[S].中華人民共和國機械電子工業部1989-03-02批準:1990實施.
[4] 廖濟林. USB2.0應用系統開發實例精講[M]. 北京:電子工業出版社, 2006.
[5] 薛圓圓. USB應用開發技術大全[M]. 北京: 人民郵電出版社, 2006.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 看黄在线 | 欧美专区一区二区三区 | 亚洲小视频在线 | 天天噜噜揉揉狠狠夜夜 | 成人免费夜片在线观看 | 国产一级视频久久 | 一本久道综合久久精品 | 男人影院在线 | 一级香蕉视频 | 国产精品亚洲一区二区三区久久 | 欧美精品在线播放 | 看一级毛片女人洗澡 | 黄色一级片在线看 | 成人国产一区二区三区精品 | 福利片在线 | 虫族bl文全肉高h | 国产精品久久久久久久午夜片 | 中国国产一级毛片视频 | 精品x8x8视频| 免费一级欧美在线观看视频片 | 99re热视频 | 大伊香蕉在线精品视频人碰人 | 视频一区二区在线观看 | 日韩成人在线观看 | 亚洲乱人伦精品图片 | 亚洲欧洲精品国产区 | 欧美精品xxx| 欧美日韩另类国产 | 制服丝袜中文 | 一级特黄录像免费播放中文版 | 伊人影视在线观看日韩区 | 91精品国产免费自在线观看 | 国产一级一级一级国产片 | 久久天天拍天天爱天天躁 | 亚洲国产精品+制服丝袜 | 日韩视频在线观看免费 | 国产综合成人观看在线 | 蜜臀91精品国产高清在线观看 | 国产精品日本欧美一区二区 | 高清欧美不卡一区二区三区 | 亚洲欧美在线一区二区 |