您現(xiàn)在的位置:
中國傳動(dòng)網(wǎng)
>
技術(shù)頻道
>
技術(shù)百科
>
基于AVR ATmega128的工業(yè)網(wǎng)關(guān)的實(shí)現(xiàn)
時(shí)間:2008-01-28 14:09:00來源:mahaiyan

當(dāng)消息在標(biāo)準(zhǔn)的Modbus系列網(wǎng)絡(luò)傳輸時(shí),每個(gè)字符或字節(jié)以如下方式發(fā)送(從左到右):最低有效位...最高有效位。
使用RTU字符幀時(shí),位的序列是:
5 CRC16檢測
循環(huán)冗余碼CRC檢驗(yàn)技術(shù)廣泛應(yīng)用于測控及通信領(lǐng)域。CRC計(jì)算可以靠專用的硬件來實(shí)現(xiàn),但是對于低成本的微控制器系統(tǒng),在沒有硬件支持下實(shí)現(xiàn)CRC檢驗(yàn),關(guān)鍵的問題就是如何通過軟件來完成CRC計(jì)算,也就是CRC算法的問題。計(jì)算CRC16有三種算法:按位計(jì)算CRC、字節(jié)計(jì)算CRC、半字節(jié)計(jì)算CRC。這三種算法它們稍有不同,按位求法速度較慢,但占用最小的內(nèi)存空間;按字節(jié)查表求CRC的方法速度較快,但占用較大的內(nèi)存;按半字節(jié)查表求CRC的方法是前兩者的均衡,即不會(huì)占用太多的內(nèi)存,同時(shí)速度又不至于太慢,比較適合8位小內(nèi)存的單片機(jī)的應(yīng)用場合。
6 AVR單片機(jī)多處理器通信模式
置位UCSRA 的多處理器通信模式位(MPCM) 可以對USART 接收器接收到的數(shù)據(jù)幀進(jìn)行過濾。那些沒有地址信息的幀將被忽略,也不會(huì)存入接收緩沖器。在一個(gè)多處理器系統(tǒng)中,處理器通過同樣的串行總線進(jìn)行通信,這種過濾有效的減少了需要CPU 處理的數(shù)據(jù)幀的數(shù)量。MPCM位的設(shè)置不影響發(fā)送器的工作,但在使用多處理器通信模式的系統(tǒng)中,它的使用方法會(huì)有所不同。如果接收器所接收的數(shù)據(jù)幀長度為5 到8 位,那么第一個(gè)停止位表示這一幀包含的是數(shù)據(jù)還是地址信息。如果接收器所接收的數(shù)據(jù)幀長度為9 位,那么由第9 位(RXB8) 來確定是數(shù)據(jù)還是地址信息。如果確定幀類型的位( 第一個(gè)停止位或第9 個(gè)數(shù)據(jù)位) 為1,那么這是地址幀,否則為數(shù)據(jù)幀。在多處理器通信模式下,多個(gè)從處理器可以從一個(gè)主處理器接收數(shù)據(jù)。首先要通過解碼地址幀來確定所尋址的是哪一個(gè)處理器。如果尋址到某一個(gè)處理器,它將正常接收后續(xù)的數(shù)據(jù),而其他的從處理器會(huì)忽略這些幀直到接收到另一個(gè)地址幀。
對于一個(gè)作為主機(jī)的處理器來說,它可以使用9 位數(shù)據(jù)幀格式(UCSZ = 7)。如果傳輸?shù)氖且粋€(gè)地址幀(TXB8 = 1) 就將第9 位(TXB8) 置1,如果是一個(gè)數(shù)據(jù)幀(TXB = 0) 就將它清零。在這種幀格式下,從處理器必須工作于9 位數(shù)據(jù)幀格式。
下面即為在多處理器通信模式下進(jìn)行數(shù)據(jù)交換的步驟:
5.1 所有從處理器都工作在多處理器通信模式(UCSRA 寄存器的MPCM 置位)。
5.2 主處理器發(fā)送地址幀后,所有從處理器都會(huì)接收并讀取此幀。從處理器UCSRA寄存器的RXC 正常置位。
5.3 每一個(gè)從處理器都會(huì)讀取UDR 寄存器的內(nèi)容已確定自己是否被選中。如果選中,就清零UCSRA 的MPCM 位,否則它將等待下一個(gè)地址字節(jié)的到來,并保持MPCM 為1。
5.4 被尋址的從處理器將接收所有的數(shù)據(jù)幀,直到收到一個(gè)新的地址幀。而那些保持MPCM 位為1 的從處理器將忽略這些數(shù)據(jù)。
5.5被尋址的處理器接收到最后一個(gè)數(shù)據(jù)幀后,它將置位MPCM,并等待主處理器發(fā)送下一個(gè)地址幀。然后第2 步之后的步驟重復(fù)進(jìn)行。
使用5 至8 比特的幀格式是可以的,但是不實(shí)際,因?yàn)榻邮掌鞅仨氃谑褂胣 和n+1 幀格式之間進(jìn)行切換。由于接收器和發(fā)送器使用相同的字符長度設(shè)置,這種設(shè)置使得全雙工操作變得很困難。如果使用5 至8 比特的幀格式,發(fā)送器應(yīng)該設(shè)置兩個(gè)停止位(USBS = 1),其中的第一個(gè)停止位被用于判斷幀類型。不要使用讀- 修改- 寫指令(SBI 和CBI) 來操作MPCM 位。MPCM 和TXC 標(biāo)志使用相同的I/O 單元,使用SBI 或CBI 指令可能會(huì)不小心將它清零。在本設(shè)計(jì)方案中,AVR ATmega128作為多處理器通信模式中的主處理器,其他的AVR分控設(shè)備做為從處理器。
7結(jié)束語
采用本方案所介紹的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),由于AVR ATmega128與上位機(jī)之間通信是基于Modbus標(biāo)準(zhǔn)協(xié)議,而與其他的AVR分控設(shè)備之間采用AVR單片機(jī)所特有的多處理器通信。因此,在保證系統(tǒng)開放性的同時(shí),又能保證數(shù)據(jù)處理效率的提高。在交通控制、智能化停車場管理系統(tǒng)等方面,本設(shè)計(jì)方案有一定的參考價(jià)值。
參考文獻(xiàn)
[1] 陳冬云,杜敬倉,任柯燕. ATmega 128單片機(jī)原理與開發(fā)指導(dǎo).機(jī)械工業(yè)出版社,2006.
[2] Richard Barnett,Larry O’Cull,Sarah Cox. 嵌入式C編程與Atmel AVR.北京:清華大學(xué)出版社,2003.
[3] Modicon.Modbus Protocol Reference Guide.1996
[4] 朱懿,蔣念平.ModBus協(xié)議在工業(yè)控制系統(tǒng)中的應(yīng)用.微計(jì)算機(jī)信息,2006,4-1:118-120.標(biāo)簽:
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(m.y3602.cn)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>勇梅機(jī)械液壓閘門給煤機(jī)的優(yōu)點(diǎn)
2025-10-22
2025-10-17
2025-10-11
「一體機(jī)性價(jià)比王者」NK290M普及型數(shù)控...
2025-10-09
2025-09-23
2025-09-23