在自適應(yīng)光學(xué)系統(tǒng)設(shè)計(jì)中,波前校正器作為光學(xué)系統(tǒng)的一個(gè)重要組成部分發(fā)展起來(lái),,它與波前傳感器和波前控制部分相結(jié)合,,使光學(xué)系統(tǒng)具有克服外界動(dòng)態(tài)干擾的能力,這是傳統(tǒng)光學(xué)技術(shù)難以做到的。在眾多類型的波前校正器中,,分立壓電式連續(xù)鏡面變形鏡以其變形量大,、表面變形沒(méi)有間斷點(diǎn)等優(yōu)點(diǎn)而被廣泛的采用。變形鏡的結(jié)構(gòu)有基板,、驅(qū)動(dòng)器和薄鏡面組成,在基板上固定若干個(gè)壓電驅(qū)動(dòng)器,,驅(qū)動(dòng)器前在固定一個(gè)薄的光學(xué)鏡面,,施加電壓給驅(qū)動(dòng)器,壓電陶瓷即可產(chǎn)生正的或負(fù)的變形,,從而推動(dòng)薄反射鏡表面產(chǎn)生變形,,起到改變光學(xué)波前并校正波前誤差的作用。為了防止壓電驅(qū)動(dòng)器輸出電壓出現(xiàn)異常,,導(dǎo)致系統(tǒng)出現(xiàn)故障,,需要及時(shí)了解各路壓電驅(qū)動(dòng)器輸出電壓情況,并且工程中要求監(jiān)測(cè)上千路壓電驅(qū)動(dòng)器的輸出電壓,,所以設(shè)計(jì)壓電驅(qū)動(dòng)器輸出電壓監(jiān)測(cè)顯示系統(tǒng)成為一個(gè)亟需解決的課題,。
本設(shè)計(jì)的主要工作是利用20路電壓測(cè)量模塊采集到壓電陶瓷驅(qū)動(dòng)器的輸出電壓,通過(guò)ModBus RTU通訊協(xié)議,,經(jīng)RS485接口將電壓數(shù)據(jù)傳送到高速單片機(jī),,并在LCD液晶屏上實(shí)時(shí)顯示各路壓電驅(qū)動(dòng)器的輸出電壓值,20路電壓監(jiān)測(cè)系統(tǒng)框圖如圖1所示,。
圖1 20路電壓監(jiān)測(cè)系統(tǒng)框圖
1 20路電壓測(cè)量模塊介紹
1.1 20路電壓測(cè)量模塊功能與特點(diǎn)
20路電壓測(cè)量模塊是一智能型的數(shù)據(jù)采集模塊,,可以測(cè)量20路電壓號(hào),輸入信號(hào)為直流,。其輸出為RS485,,通訊協(xié)議符合ModBus RTU協(xié)議。此模塊可以廣泛應(yīng)用于各種工業(yè)測(cè)控系統(tǒng),。其主要的功能特點(diǎn)如下:
采用最新電子技術(shù),,以高速信號(hào)處理器、微處理器為核心的數(shù)字式智能型數(shù)據(jù)采集模塊,;可測(cè)量20路0~500 V直流電壓信號(hào),;并且量程可以根據(jù)需要選擇;配有光電隔離的RS-485通訊接口,,ModBus RTU通訊規(guī)約,,可以與具有ModBus兼容協(xié)議的監(jiān)控系統(tǒng)進(jìn)行信息數(shù)據(jù)的有效傳送。
20路電壓測(cè)量模塊的技術(shù)指標(biāo)如下:
測(cè)量精度能夠達(dá)到0.2級(jí),,在利用模塊進(jìn)行組網(wǎng)時(shí),,地址范圍是0~255,并且波特率可選,默認(rèn)值為9 600b/s,。
工作條件:溫度范圍是-30~70℃,,濕度范圍是10%~90%RH;存儲(chǔ)條件:溫度范圍是-40~80℃,,濕度范圍是10%~90%RH,。
1.2 ModBus通訊規(guī)約
在各種不同的系統(tǒng)通信中,Modbus協(xié)議是一種在工業(yè)領(lǐng)域被廣泛應(yīng)用的,、真正開(kāi)放的,、標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信協(xié)議,通過(guò)該協(xié)議控制器之間,、控制器與其它設(shè)備之間都可以實(shí)現(xiàn)通信,。由于設(shè)計(jì)所用的20路電壓測(cè)量模塊采用ModBus通訊協(xié)議,作為主機(jī)的單片機(jī)也應(yīng)該采用此協(xié)議,,才能實(shí)現(xiàn)主機(jī)與從機(jī)的通信,。在編程實(shí)現(xiàn)主機(jī)功能之前,需要理解協(xié)議的規(guī)約,。
主機(jī)查詢信息包括從設(shè)備地址,、功能代碼、所有要發(fā)送的數(shù)據(jù),、錯(cuò)誤校驗(yàn),。從機(jī)回應(yīng)信息包括確認(rèn)要行動(dòng)的域、任何要返回的數(shù)據(jù),、錯(cuò)誤校驗(yàn),。
主機(jī)和從機(jī)的通信方式符合查詢-回應(yīng)的方式,主機(jī)發(fā)送的查詢消息中的功能代碼告訴從機(jī)要執(zhí)行何種功能,,數(shù)據(jù)段中包含了從機(jī)要執(zhí)行功能的附加信息以及寄存器的起始地址和數(shù)量,,錯(cuò)誤校驗(yàn)為從機(jī)提供了一種驗(yàn)證消息內(nèi)容是否正確的方法。從機(jī)產(chǎn)生回應(yīng)是建立在讀取指令未發(fā)生錯(cuò)誤的前提下,,在回應(yīng)消息中的功能代碼是查詢消息的回應(yīng),,數(shù)據(jù)段包含了從機(jī)收集的數(shù)據(jù)。如果中間過(guò)程發(fā)生錯(cuò)誤,,功能代碼將被修改,,并且數(shù)據(jù)段包含描述錯(cuò)誤信息的代碼,錯(cuò)誤校驗(yàn)允許主機(jī)確認(rèn)消息是否可用,。
1.3 20路電壓測(cè)量模塊組網(wǎng)
因?yàn)?0路電壓測(cè)量模塊的輸出為標(biāo)準(zhǔn)RS485,,所以以RS485為接口的20路電壓測(cè)量模塊可以進(jìn)行組網(wǎng)。通常RS485網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)最多為32個(gè),,通過(guò)中繼器可以提高RS485接口的帶負(fù)載能力,,最多可達(dá)到驅(qū)動(dòng)256個(gè)模塊的能力,,從而可以將多個(gè)20路電壓測(cè)量模塊組成網(wǎng)絡(luò),滿足實(shí)時(shí)監(jiān)測(cè)幾百路甚至上千路電壓的需要,,最終達(dá)到監(jiān)測(cè)顯示多路壓電驅(qū)動(dòng)器輸出電壓的要求,。
2 系統(tǒng)部分硬件設(shè)計(jì)
2.1 RS485通信接口
由于20路電壓測(cè)量模塊支持RS485串行通信,為了實(shí)現(xiàn)單片機(jī)與電壓測(cè)量模塊的數(shù)據(jù)通信,,必須設(shè)計(jì)RS485通信接口,。主機(jī)可以通過(guò)RS485接口將查詢信息傳送給從機(jī),同時(shí)從機(jī)可以將采集的實(shí)時(shí)電壓數(shù)據(jù)回應(yīng)給主機(jī),。采用RS485信號(hào)收發(fā)專用芯片MAX485實(shí)現(xiàn)信號(hào)的轉(zhuǎn)換,,在設(shè)計(jì)電路時(shí)要充分考慮MAX485芯片同相端、反相端的電平對(duì)應(yīng)關(guān)系,。由于從機(jī)回應(yīng)數(shù)據(jù)幀的初始位-低電平使主機(jī)產(chǎn)生接受中斷,所以只有MAX485芯片同相端A的初始電平大于反相端B的初始電平時(shí),,才能保證主控制器單片機(jī)打開(kāi)接收中斷時(shí)不會(huì)產(chǎn)生誤中斷,,而造成接到錯(cuò)誤的數(shù)據(jù)幀,RS485接口電路原理圖如圖2所示,。
圖2 RS485接口電路原理圖
2.2 LCD液晶顯示模塊
LCD液晶顯示模塊-LM320160CCW是320x160全圖形點(diǎn)陣的液晶顯示模塊,,該模塊支持并口通信,內(nèi)置升壓電路,,5 V供電,;模塊顯示屏由內(nèi)置的主控芯片S1D13700控制,可靠性高,,指令簡(jiǎn)單,,易于操作;此外,,液晶模塊使用高亮度LED背光,,實(shí)現(xiàn)極佳對(duì)比顯示,藍(lán)底白字或白底黑字,,顯示效果可選,。液晶模塊的以上特點(diǎn)適合本設(shè)計(jì)選用的C8051F120主控制器,LCD液晶顯示范圍也可以滿足本設(shè)計(jì)信息顯示的需要,。對(duì)于內(nèi)置控制芯片的液晶顯示模塊,,在電路設(shè)計(jì)時(shí),只需把液晶的控制電路信號(hào)分清就可以方便的使用,。由于LM320160CCW液晶模塊中配備液晶控制單元,,所以在接口電路設(shè)計(jì)不需加入更多控制芯片就可實(shí)現(xiàn)圖形或字符的顯示。
2.3 LCD與控制器接口電路設(shè)計(jì)
在接口電路設(shè)計(jì)中,,由于LM320160CCW液晶顯示模塊為5 V供電,,而單片機(jī)為3.3 V供電,,所以不能簡(jiǎn)單的彼此連接在一起,需要做電平處理,。本次設(shè)計(jì)中選用741S245作為總線驅(qū)動(dòng)器,,并在單片機(jī)引腳加入5 V上拉電阻,這樣即可保證信號(hào)的驅(qū)動(dòng)能力,,接口電路原理圖如圖3所示,,其中P3和P7為單片機(jī)的I/O端口,RV1為可調(diào)電阻,,用于調(diào)節(jié)液晶模塊背光對(duì)比度,。
圖3 LCD接口電路原理圖
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)上電復(fù)位后,液晶模塊需要系統(tǒng)初始化,、寫入指令代碼,、寫入數(shù)據(jù)3個(gè)步驟才能正常工作。在指令,、數(shù)據(jù)寫入的過(guò)程中要注意時(shí)序問(wèn)題,,如果時(shí)序過(guò)短,會(huì)導(dǎo)致指令,、數(shù)據(jù)無(wú)法正確寫入液晶模塊,,而造成信息無(wú)法顯示或出現(xiàn)花屏現(xiàn)象。由于主控制器單片機(jī)采用C語(yǔ)言編程,,因此,,單片機(jī)程序和液晶模塊顯示程序都具有很強(qiáng)的移植性、可操作性,。
3.1 液晶模塊指令,、數(shù)據(jù)的寫入
液晶模塊在正常工作之前,首先進(jìn)行模塊初始化,,寫入系統(tǒng)設(shè)置命令將使液晶模塊退出電源模式,,并且啟動(dòng)模塊內(nèi)部時(shí)鐘,經(jīng)過(guò)一定的延時(shí)將初始化液晶模塊的內(nèi)部狀態(tài),。然后設(shè)置液晶模塊的顯示模式,,包括打開(kāi)顯示、設(shè)置游標(biāo),、設(shè)置圖形模式等,。所有指令的寫入都可以通過(guò)公用的指令函數(shù)實(shí)現(xiàn)。寫指令程序如下:
LCD320160CCW寫顯示數(shù)據(jù)程序包括清屏,、圖形界面,、符號(hào)和漢字等數(shù)據(jù)信息,數(shù)據(jù)的寫入是建立在指令正確寫入的基礎(chǔ)上,。因?yàn)樵揕CD模塊為圖形點(diǎn)陣式,,所以可以將顯示信息轉(zhuǎn)換為相應(yīng)的點(diǎn)陣數(shù)組,,在需要顯示信息時(shí)只需調(diào)用點(diǎn)陣數(shù)組即可,寫數(shù)據(jù)程序如下:
3.2 控制器主程序設(shè)計(jì)
圖4為單片機(jī)主程序流程圖,,在系統(tǒng)及LCD初始化完成后,,主機(jī)計(jì)算查詢信息的錯(cuò)誤校驗(yàn)CRC碼,并且將其附加在發(fā)送信息的末端,,低字節(jié)在前,,高字節(jié)在后;查詢信息通過(guò)定時(shí)器2實(shí)現(xiàn)定時(shí)發(fā)送,,由于設(shè)定的UAWT波特率為9 600 b/s,查詢信息的字節(jié)數(shù)為8個(gè),,從機(jī)正確回應(yīng)信息的字節(jié)數(shù)為35個(gè),那么一次發(fā)送,、接受過(guò)程字節(jié)總數(shù)為43個(gè),,需要的時(shí)間為T=43x8x1 s/9 600x1 000=35.8 ms,所以確定定時(shí)器2的定時(shí)間為50 ms.一次定時(shí)間隔內(nèi)除發(fā)送、接收的時(shí)間外,,其余時(shí)間用于LCD液晶顯示,,由于壓電驅(qū)動(dòng)器電壓變化速率相對(duì)與定時(shí)器定時(shí)頻率比較大,因此可以認(rèn)為監(jiān)控,、顯示具有較好的實(shí)時(shí)性,,并且在程序中按照這樣的順序安排任務(wù)調(diào)度能夠滿足實(shí)際工程中實(shí)時(shí)性的要求,。
圖4 單片機(jī)主程序流程圖
4 結(jié)論
本文中通過(guò)對(duì)20路電壓測(cè)量模塊以及ModBus協(xié)議進(jìn)行介紹,,在此基礎(chǔ)上搭建基于高速單片機(jī)C8051F120的硬件連接,通過(guò)編寫控制器程序?qū)崿F(xiàn)了單片機(jī)與電壓測(cè)量模塊的數(shù)據(jù)通信和電壓的LCD液晶實(shí)時(shí)顯示,。實(shí)踐結(jié)果表明,,該設(shè)計(jì)硬件結(jié)構(gòu)簡(jiǎn)單,運(yùn)行穩(wěn)定可靠,,開(kāi)發(fā)周期短,,滿足實(shí)時(shí)監(jiān)測(cè)顯示自適應(yīng)光學(xué)系統(tǒng)中各路壓電驅(qū)動(dòng)器輸出電壓值的需要,具體實(shí)物如圖5所示,。
圖5 電壓監(jiān)測(cè)、實(shí)時(shí)顯示系統(tǒng)實(shí)物圖