基于AVR單片機(jī)的多路遙控開關(guān)編解碼實(shí)現(xiàn)
3.1 串行通信協(xié)議
在從遙控臺(tái)端單片機(jī)和負(fù)荷缸被控端單片機(jī)的通信中.我們選擇通信協(xié)議為:9600波特率,8個(gè)數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn)。
遙控臺(tái)端單片機(jī)和負(fù)荷缸被控端單片機(jī)之間的通信方式采用主從定時(shí)請(qǐng)求應(yīng)答方式,遙控臺(tái)端單片機(jī)始終具有主動(dòng)發(fā)送權(quán),定時(shí)向負(fù)荷缸被控端單片機(jī)發(fā)送設(shè)置16個(gè)開關(guān)狀態(tài)命令幀和讀取回傳指示燈開關(guān)狀態(tài)命令,負(fù)荷缸單片機(jī)處于被動(dòng)狀態(tài)響應(yīng)狀態(tài)。
3.2 數(shù)據(jù)幀格式
在負(fù)荷缸的控制中,當(dāng)發(fā)電機(jī)帶負(fù)荷運(yùn)行時(shí),意外的主開關(guān)分閘信號(hào)等同于發(fā)電機(jī)突卸負(fù)荷,特別是當(dāng)滿負(fù)荷運(yùn)行時(shí)意外的主開關(guān)分閘信號(hào)等同于發(fā)電機(jī)的瞬時(shí)100%突卸負(fù)荷,將導(dǎo)致發(fā)電機(jī)出現(xiàn)飛車現(xiàn)像,嚴(yán)重的損害發(fā)電機(jī)的性能,因此信號(hào)傳輸?shù)目煽啃苑浅V匾?,在本系統(tǒng)中遙控臺(tái)到負(fù)荷缸的命令幀格式采用如圖4所示的方法進(jìn)行通訊握手和數(shù)據(jù)校驗(yàn)保證遙控臺(tái)和負(fù)荷缸端的數(shù)據(jù)的可靠傳輸和控制。
其中:@為幀開始標(biāo)志符,$為幀結(jié)束標(biāo)志符,D1,D2分別為第一、第二組8個(gè)開關(guān)狀態(tài)組成的1個(gè)字節(jié)的無(wú)符號(hào)字符,V1,V2為其對(duì)應(yīng)校驗(yàn)碼,這里采用其按位取反。當(dāng)D1,D2,V1,V2都為ASCII碼0xff時(shí)為請(qǐng)求負(fù)荷缸端回傳開關(guān)狀態(tài)命令幀,負(fù)荷缸端單片機(jī)響應(yīng)命令回傳負(fù)荷缸端開關(guān)狀態(tài)命令幀的格式為:
其中:@為幀開始標(biāo)志符,D1為8個(gè)回傳指示燈開關(guān)狀態(tài)組成的1個(gè)字節(jié)的無(wú)符號(hào)字符,V1為D1按位取反較驗(yàn)碼,$為幀結(jié)束標(biāo)志符。
3.3 通訊握手和數(shù)據(jù)較驗(yàn)編程實(shí)現(xiàn)
在單片機(jī)編程中,為了方便命令幀數(shù)據(jù)較驗(yàn),我們?cè)趩纹瑱C(jī)程序中設(shè)置了30個(gè)字節(jié)的堆棧空間用于緩存接收的數(shù)據(jù),負(fù)荷缸端單片機(jī)程序流程圖如圖5所示,該程序在實(shí)際工作中運(yùn)行穩(wěn)定,滿足工作的要求。
4 結(jié) 語(yǔ)
本文利用AVR單片機(jī)的高速運(yùn)行速度,采用74SL244緩沖器和74SL273鎖存器擴(kuò)展單片機(jī)I/O口,實(shí)現(xiàn)了多路遠(yuǎn)程遙控開關(guān)量采集監(jiān)控和數(shù)字信號(hào)編碼,采用了握手和數(shù)據(jù)較驗(yàn)的方法保證了數(shù)據(jù)的可靠傳輸和控制,用SN75LBC184 RS 232/RS 485串行通信轉(zhuǎn)換芯片實(shí)現(xiàn)了串行通信信號(hào)的遠(yuǎn)距離傳送。本文的方法也可用于其他開關(guān)量信號(hào)采集和自動(dòng)化控制場(chǎng)所,實(shí)現(xiàn)設(shè)備的智能監(jiān)控。
評(píng)論