本發(fā)明涉及控制器的相關(guān),具體來(lái)說(shuō),涉及一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法及電路。
背景技術(shù):
1、帶有modbus-rtu從機(jī)協(xié)議的控制器是一種常用的控制器,這種控制器由于要執(zhí)行modbus-rtu從機(jī)協(xié)議,必須至少設(shè)置如下4個(gè)參數(shù):從機(jī)地址,波特率,校驗(yàn)位類(lèi)型,停止位數(shù)量(以下稱(chēng)為:modbus-rtu參數(shù))。只有modbus-rtu參數(shù)設(shè)置的與相應(yīng)modbus-rtu主機(jī)參數(shù)對(duì)應(yīng),才能正常通信。
2、因此帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器必須具有設(shè)置和查詢(xún)modbus-rtu參數(shù)的功能。
3、現(xiàn)有技術(shù)中,有如下兩種設(shè)置和查詢(xún)modbus-rtu參數(shù)的方案,以下述評(píng):
4、第一種:在原帶有modbus-rtu從機(jī)協(xié)議的控制器上加裝顯示裝置和輸入裝置,如數(shù)碼管和按鍵或帶觸摸輸入的顯示屏等,此方案用戶(hù)體驗(yàn)好,設(shè)置值可直觀顯示;缺點(diǎn)是造價(jià)很高,硬件結(jié)構(gòu)很復(fù)雜,體積也很大,難以小型化。
5、第二種:在原帶有modbus-rtu從機(jī)協(xié)議的控制器上加裝多個(gè)撥碼開(kāi)關(guān)用于輸入和顯示,此方案設(shè)置值可直觀顯示;缺點(diǎn)是需要硬件結(jié)構(gòu)配合,還可能被非授權(quán)人員誤操作。
6、因此,如何提供一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法及電路,可以在使帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器具有設(shè)置和查詢(xún)modbus-rtu參數(shù)的功能的同時(shí),不增加原有電路元件,是發(fā)明需解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法及電路,可以在使帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器具有設(shè)置和查詢(xún)modbus-rtu參數(shù)的功能的同時(shí),不增加原有電路元件。
2、為解決上述技術(shù)問(wèn)題,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法,包括:
3、控制器上電初始化時(shí),執(zhí)行如下操作:
4、s1:定義符合modbus-rtu協(xié)議的數(shù)據(jù)存儲(chǔ)區(qū),用于存儲(chǔ)modbus-rtu參數(shù),該數(shù)據(jù)存儲(chǔ)區(qū)的數(shù)據(jù)需掉電記憶;
5、s2:定義一個(gè)變量,用于指示當(dāng)前是正常通信狀態(tài)還是設(shè)置和查詢(xún)參數(shù)狀態(tài),將該變量初始化為正常通信狀態(tài);
6、s3:從所述數(shù)據(jù)存儲(chǔ)區(qū)中讀出modbus-rtu參數(shù),用該參數(shù)初始化單片機(jī)的第一串行口,用預(yù)設(shè)指定參數(shù)初始化單片機(jī)的第二串行口;
7、s4:初始化后,單片機(jī)的第一串行口按從所述數(shù)據(jù)存儲(chǔ)區(qū)中讀出的modbus-rtu參數(shù)正常通信,單片機(jī)的第二串行口按預(yù)設(shè)指定參數(shù)監(jiān)聽(tīng)單片機(jī)的第一串行口的數(shù)據(jù)輸入(uart1_rxd)管腳;
8、當(dāng)監(jiān)聽(tīng)到指定預(yù)設(shè)數(shù)據(jù)幀時(shí),將所述變量設(shè)置為設(shè)置和查詢(xún)參數(shù)狀態(tài),單片機(jī)停止進(jìn)行所述的正常通信,用預(yù)設(shè)指定參數(shù)初始化單片機(jī)的第一串行口,用modbus-rtu協(xié)議對(duì)所述數(shù)據(jù)存儲(chǔ)區(qū)的modbus-rtu參數(shù)進(jìn)行設(shè)置和查詢(xún)。
9、所述預(yù)設(shè)指定參數(shù)包括:預(yù)設(shè)指定從機(jī)地址,預(yù)設(shè)指定波特率,預(yù)設(shè)指定校驗(yàn)位類(lèi)型,預(yù)設(shè)指定停止位數(shù)量;其中:
10、預(yù)設(shè)指定從機(jī)地址為以下數(shù)值之一:248,249,250,251,252,253,254,255;
11、預(yù)設(shè)指定波特率為以下數(shù)值之一:1200,2400,4800,9600,19200,115200;
12、預(yù)設(shè)指定校驗(yàn)位類(lèi)型為以下類(lèi)型之一:奇,偶,無(wú);
13、預(yù)設(shè)指定停止位數(shù)量為以下數(shù)值之一:1,2。
14、預(yù)設(shè)指定參數(shù)選取上述范圍的原因是:由于modbus-rtu從機(jī)協(xié)議中規(guī)定從機(jī)地址范圍是1~247,且0為廣播地址,同時(shí),考慮到1字節(jié)數(shù)據(jù)按無(wú)符號(hào)數(shù)表達(dá)的最大數(shù)值為255。按上述預(yù)設(shè)指定從機(jī)地址取值可以避免與modbus-rtu從機(jī)協(xié)議地址沖突。而預(yù)設(shè)指定波特率,預(yù)設(shè)指定校驗(yàn)位類(lèi)型,預(yù)設(shè)指定停止位數(shù)量的取值均為本領(lǐng)域常用參數(shù)。
15、優(yōu)選地,所述預(yù)設(shè)指定參數(shù)為:預(yù)設(shè)指定從機(jī)地址:252,預(yù)設(shè)指定波特率:9600,預(yù)設(shè)指定校驗(yàn)位類(lèi)型:無(wú),預(yù)設(shè)指定停止位數(shù)量:1。
16、優(yōu)選地,所述指定預(yù)設(shè)數(shù)據(jù)幀為:0xfc,6,0,4,0,5,0x1d,0xe5。
17、根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供了一種用于執(zhí)行上述方法的電路,包括:?jiǎn)纹瑱C(jī)和rs485收發(fā)芯片;其中:
18、單片機(jī)的第一串行口數(shù)據(jù)輸入(uart1_rxd)管腳,單片機(jī)的第二串行口的數(shù)據(jù)輸入(uart2_rxd)管腳,rs485收發(fā)芯片的數(shù)據(jù)輸出(ro)管腳相互連接;
19、單片機(jī)的第一串行口數(shù)據(jù)輸出(uart1_txd)管腳,rs485收發(fā)芯片的數(shù)據(jù)輸入(di)管腳相互連接;
20、單片機(jī)的任意一個(gè)開(kāi)關(guān)量輸出(gpio)管腳,rs485收發(fā)芯片的接收使能(re)管腳,rs485收發(fā)芯片的驅(qū)動(dòng)使能(de)管腳相互連接。
21、有益效果:本技術(shù)方案在不增加原有電路元件的前提下,使帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器具有設(shè)置和查詢(xún)modbus-rtu參數(shù)的功能,結(jié)構(gòu)簡(jiǎn)單,不需增加成本。
1.一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法,包括:
2.根據(jù)權(quán)利要求1所述的一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法,其特征在于:所述預(yù)設(shè)指定參數(shù)為:預(yù)設(shè)指定從機(jī)地址:252,預(yù)設(shè)指定波特率:9600,預(yù)設(shè)指定校驗(yàn)位類(lèi)型:無(wú),預(yù)設(shè)指定停止位數(shù)量:1。
3.根據(jù)權(quán)利要求1所述的一種用于帶有modbus-rtu從機(jī)協(xié)議的單片機(jī)控制器的參數(shù)設(shè)置和查詢(xún)的方法,其特征在于:所述指定預(yù)設(shè)數(shù)據(jù)幀為:0xfc,6,0,4,0,5,0x1d,0xe5。
4.一種用于執(zhí)行權(quán)利要求1~3所述方法的電路,包括:?jiǎn)纹瑱C(jī)和rs485收發(fā)芯片;其特征在于: