SCADA系統(tǒng)中交流采樣器設(shè)計(jì)
LP2407A集成了CAN控制器,擴(kuò)展一片CAN收發(fā)器就構(gòu)成了CAN接口電路。收發(fā)器選用Philips公司的P82C250,具體電路如圖5。
P82C250是5V電源供電,與LF2407A連接要加電平轉(zhuǎn)移電路。R301、D301完成3.3V電平向5V電平轉(zhuǎn)移;R302、R303完成5V電平向3.3V電平轉(zhuǎn)移。
其他如串口擴(kuò)展電路、SRAM擴(kuò)展電路、液晶擴(kuò)展電路等為通用電路.在此不做闡述。
2軟件設(shè)計(jì)
2.1嵌入式軟件設(shè)計(jì)思想
借鑒Windows編程中基于消息驅(qū)動(dòng)的思想,在嵌入式軟件中引入基于消息的處理方泫。嵌入式系統(tǒng)的消息可以分為:鍵盤輸入命令、系統(tǒng)接口電路產(chǎn)生的狀態(tài)信息(如報(bào)警、越限等)以及上位機(jī)命令。消息的接收采用中斷方式,確保消息可靠及時(shí)的接收;時(shí)間要求非常苛刻的消息,如電機(jī)保護(hù),在中斷直接處理;其他消息在主程序中對消息進(jìn)行解析執(zhí)行。程序設(shè)計(jì)思想可以用圖6表示。
本系統(tǒng)通過CAN總線接收上位機(jī)的命令(接收消息)。CAN接收方式采用中斷方式.當(dāng)上位機(jī)下達(dá)命令時(shí),該裝置通過中斷及時(shí)接收.實(shí)時(shí)任務(wù)直接在中斷程序中完成,滿足系統(tǒng)的實(shí)時(shí)性要求;非實(shí)時(shí)任務(wù)則將該命令存入消息(或命令)緩沖區(qū),等待在主函數(shù)中查詢處理。
2.2程序整體框圖
整個(gè)程序由主函數(shù)、功能函數(shù)、CAN通信中斷函數(shù)、DSP的定時(shí)器T1的周期中斷(采樣中斷)函數(shù)構(gòu)成。
DSP的CAN控制器接收中斷采用DSP的內(nèi)核中斷1;定時(shí)器T1的周期中斷采用DSP的內(nèi)核中斷2,用來定期觸發(fā)MAXl25進(jìn)行A/D轉(zhuǎn)換。關(guān)于LF2407A的中斷編程可參見文獻(xiàn)[1~2]。
主函數(shù)main()的流程如圖7所示。
主函數(shù)先初始化系統(tǒng),啟動(dòng)實(shí)時(shí)采樣,實(shí)時(shí)采樣一直運(yùn)行并始終保持有多個(gè)周期的波形數(shù)據(jù),供故障錄波后觀察故障點(diǎn)前后幾個(gè)周期的波形,以便分析故障原因。然后進(jìn)入消息處理的循環(huán)程序。從流程圖可以看到,程序先檢查消息(或命令)緩沖區(qū),若有消息/命令,則調(diào)用相應(yīng)功能函數(shù)執(zhí)行命令,判斷是否到計(jì)算周期以確定是否調(diào)用計(jì)算函數(shù),然后回到消息處理入口;若沒有消息等待處理,則判斷100ms計(jì)算周期是否到(計(jì)算周期可以調(diào)整)。若到,則計(jì)算一遍電參數(shù),判斷是否有越限情況。若有越限則通知上位機(jī),然后返回到消息處理入口,重復(fù)開始消息(或命令)的解析執(zhí)行。消息接收程序以中斷方式在后臺運(yùn)行。
2.3功能函數(shù)設(shè)計(jì)
功能函數(shù)由主函數(shù)main()調(diào)用,下面介紹幾種主要的功能函數(shù)。限于篇幅,函數(shù)沒有展開,只列出函數(shù)名。
計(jì)算電參數(shù)的函數(shù):void Calc();
向上位機(jī)傳送電參數(shù)值的函數(shù):unsigned int Send_AcqData();
執(zhí)行參數(shù)設(shè)定命令的函數(shù):unsigned int Set_Parameter();
向上位機(jī)傳送報(bào)警數(shù)據(jù)的函數(shù):unsigned Int Send_AlarmnData();
向上位機(jī)傳送錄波數(shù)據(jù)的函數(shù):unsigned Int Send_WaveRecordData();
本交流采樣系統(tǒng)已運(yùn)行在鐵路水電遠(yuǎn)動(dòng)系統(tǒng)的FTU(Field Terminal Unit)中,與上位機(jī)通信的應(yīng)用層協(xié)議采用DeviceNet協(xié)議。實(shí)際證明該系統(tǒng)功能正常、性能穩(wěn)定。
評論