本發(fā)明涉及載波芯片抄表接口程序統(tǒng)一管理技術(shù)領(lǐng)域,具體涉及寬帶載波通信模塊載波芯片抄表接口統(tǒng)一管理控制方法。
背景技術(shù):
目前,許多硬件廠商提供的寬帶載波通信模塊的載波芯片抄表接口都存在差異,這導(dǎo)致了寬帶載波通信模塊的載波芯片抄表接口的通用抄表程序設(shè)計(jì)較為復(fù)雜,實(shí)現(xiàn)困難。差異一,各種載波芯片的寄存器定義不相同,需要做映射,以統(tǒng)一的命令字方式提供給集中器調(diào)用;差異二,各種載波芯片報(bào)文格式都是自定義的,需要做二次封裝;差異三,各種載波芯片提供的路由管理模式有很大差異,需要做二次抽象,以統(tǒng)一的模式提供給集中器調(diào)用。因此,設(shè)計(jì)一種能對(duì)載波芯片抄表接口進(jìn)行統(tǒng)一管理控制的方法顯得非常必要。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明是為了解決現(xiàn)有硬件廠商提供的寬帶載波通信模塊的載波芯片抄表接口存在差異導(dǎo)致的載波芯片抄表接口的通用抄表程序設(shè)計(jì)較為復(fù)雜,不易對(duì)寬帶載波通信模塊的載波芯片抄表接口進(jìn)行統(tǒng)一管理的不足,提供一種寬帶載波通信模塊載波芯片抄表接口統(tǒng)一管理控制方法,該方法易于對(duì)寬帶載波通信模塊的載波芯片抄表接口進(jìn)行統(tǒng)一管理和控制。
以上技術(shù)問題是通過下列技術(shù)方案解決的:
寬帶載波通信模塊載波芯片抄表接口統(tǒng)一管理控制方法,所述控制方法實(shí)現(xiàn)過程如下:
(1)將載波芯片的工作模式抽象成6種工作模式;
(2)根據(jù)載波芯片的6種工作模式,給每種載波芯片定義15種處理函數(shù);
(3)設(shè)置集中器接口程序的抄表工作方式;
(4)在集中器接口程序中增加載波芯片執(zhí)行所需要的初始化函數(shù)、芯片函數(shù)、消息解析函數(shù)和模式切換函數(shù)。
本方案易于對(duì)寬帶載波通信模塊的載波芯片抄表接口進(jìn)行統(tǒng)一管理和控制。本方案將載波芯片的工作模式進(jìn)行了6種抽象,并根據(jù)每種抽象定義15種處理函數(shù),這樣具體芯片之間的載波芯片抄表接口的通用抄表程序設(shè)計(jì)就不受具體硬件廠商的影響,這樣就為后續(xù)對(duì)載波芯片抄表接口的通用抄表程序設(shè)計(jì)進(jìn)行統(tǒng)一管理創(chuàng)造了前提條件。然后根據(jù)設(shè)置好的通用抄表程序的抄表工作方式和在通用抄表程序中增加載波芯片執(zhí)行所需要的各個(gè)函數(shù),即可實(shí)現(xiàn)對(duì)寬帶載波通信模塊載波芯片抄表接口的統(tǒng)一管理和控制。
作為優(yōu)選,所述6種工作模式為:空閑模式、定抄模式、隨抄模式、廣播模式、自學(xué)習(xí)模式和遠(yuǎn)程調(diào)試模式;所述15種處理函數(shù)為:空閑模式啟動(dòng)函數(shù)、定抄模式啟動(dòng)函數(shù)、隨抄模式啟動(dòng)函數(shù)、廣播模式啟動(dòng)函數(shù)、自學(xué)習(xí)模式啟動(dòng)函數(shù)、遠(yuǎn)程調(diào)試模式啟動(dòng)函數(shù)、空閑模式停止函數(shù)、定抄模式停止函數(shù)、隨抄模式停止函數(shù)、廣播模式停止函數(shù)、自學(xué)習(xí)模式停止函數(shù)、遠(yuǎn)程調(diào)試模式停止函數(shù)、載波芯片初始化函數(shù)、檔案與路由同步函數(shù)和消息解析函數(shù)。
作為優(yōu)選,集中器接口程序由載波抄表線程和載波芯片管理線程組成,載波抄表線程與載波芯片管理線程之間通過郵箱通信,兩者通信由模式切換函數(shù)封裝;
(3.1)在設(shè)備上電時(shí),集中器接口程序根據(jù)載波芯片類型,調(diào)用載波芯片初始化函數(shù),初始化載波芯片,載波芯片初始化成功后,則由集中器接口程序接受定抄請(qǐng)求;
(3.2)當(dāng)一載波任務(wù)調(diào)度執(zhí)行時(shí),根據(jù)其任務(wù)模式調(diào)用對(duì)應(yīng)啟動(dòng)函數(shù),完成相應(yīng)載波模式的切換操作,執(zhí)行集中器接口程序請(qǐng)求的任務(wù),具體如下:
(3.2.1)載波抄表線程接收來自集中器接口程序的表地址和抄讀數(shù)據(jù)項(xiàng);
(3.2.2)載波抄表線程接收來自集中器接口程序的模式切換請(qǐng)求;
(3.2.3)載波抄表線程向載波芯片管理線程的上行接收郵箱中發(fā)送啟動(dòng)切換請(qǐng)求;此時(shí),載波芯片管理線程在不斷輪詢?cè)撪]箱,一旦消息抵達(dá),立即進(jìn)入idle_proc進(jìn)行解析;idle_proc將發(fā)送命令幀啟動(dòng)路由芯片進(jìn)入定抄模式;
(3.2.4)載波芯片管理線程將自己的工作模式修改為定抄;
(3.2.5)載波芯片進(jìn)入連續(xù)申報(bào)抄表地址,載波芯片管理線程調(diào)用消息解析函數(shù)將接收到來自下行鏈路的消息幀,拆幀并緩存上報(bào)地址,待載波抄表線程調(diào)用get_curr_node取走地址;
(3.2.6)載波抄表線程根據(jù)獲取的地址,判斷其是否需要抄讀,是則組幀下發(fā),否則請(qǐng)求下一結(jié)點(diǎn);
(3.2.7)載波芯片管理線程消息解析函數(shù)在做完消息轉(zhuǎn)換之后投遞至載波芯片完成載波抄表過程;
(3.2.8)如果有數(shù)據(jù)返回,載波芯片管理線程將其轉(zhuǎn)化并投遞至載波抄表線程;
(3.2.9)載波抄表線程完成拆幀、數(shù)據(jù)上報(bào)給集中器接口程序,并記錄抄表時(shí)延及路由,作為自學(xué)習(xí),重建路由的依據(jù);
(3.2.10)等待120秒,如果沒有地址申報(bào),判讀是否所有列表中的電表都已經(jīng)申報(bào);
如果所有列表中的電表都已經(jīng)申報(bào)完成,那么,
如果所有數(shù)據(jù)都經(jīng)抄回,則跳轉(zhuǎn)到第3.3步;
如果還有表的數(shù)據(jù)項(xiàng)沒有抄回,則強(qiáng)制切換到隨抄模式,組幀向載波芯片直接抄讀數(shù)據(jù);如果成功或3次還不成功,抄下一塊電表,直到補(bǔ)抄完所有電表,跳轉(zhuǎn)到第3.3步;
如果所有列表中的電表還沒有申報(bào)完成,那么判斷本次抄表重啟載波芯片是否達(dá)到3次;如果沒有達(dá)到3次,則重啟次數(shù)增加1,并跳到第3.2.4步;
如果已經(jīng)達(dá)到3次,則跳轉(zhuǎn)第3.3步;
(3.3)任務(wù)完成后,根據(jù)其任務(wù)類型調(diào)用停止函數(shù),把模式切換成空閑,并判斷上一次抄表是否全部完成,如果所有電表已經(jīng)抄表完成,則跳轉(zhuǎn)到第3.4步;如果還有電表沒有抄表成功,則直接啟動(dòng)自學(xué)習(xí),重建路由;
(3.4)如果在空閑狀態(tài),根據(jù)配置的自學(xué)習(xí)時(shí)間,觸發(fā)自學(xué)習(xí),建立路由。
作為優(yōu)選,(4.1)在集中器接口程序中增加載波芯片執(zhí)行所需要的初始化函數(shù)時(shí),則需要根據(jù)載波芯片的說明文檔來編寫初始化函數(shù)drv_init來完成如下作業(yè):
(4.1.1)復(fù)位載波芯片;
(4.1.2)確認(rèn)載波芯片的平臺(tái)版本cid;
(4.1.3)交互系統(tǒng)啟動(dòng)串;
(4.1.4)啟動(dòng)工作模式;
(4.1.5)根據(jù)載波芯片的需要執(zhí)行網(wǎng)絡(luò)構(gòu)建與維護(hù)工作;
(4.2)在集中器接口程序中增加載波芯片執(zhí)行所需要的芯片函數(shù)drv_sync時(shí),則需要完成同步抄表檔案與路由節(jié)點(diǎn)到芯片函數(shù)drv_sync的如下作業(yè):
(4.2.1)用路由芯片上報(bào)的節(jié)點(diǎn)遍歷電表檔案;
(4.2.2)存在則設(shè)置標(biāo)志位,不存在則直接刪除節(jié)點(diǎn);
(4.2.3)再次遍歷電表檔案,將未置位的電表檔案一一添加至路由芯片中;并在每次集中器接口程序啟動(dòng)時(shí),都要同步檔案與節(jié)點(diǎn)工作,避免手工同步可能出現(xiàn)的不一致現(xiàn)象;
(4.3)在集中器接口程序中增加載波芯片執(zhí)行所需要的消息解析函數(shù)時(shí),則需要完成消息解析函數(shù)drv_proc的如下作業(yè):
(4.3.1)解析來自抄表線程的模式切換指令與抄表幀;
(4.3.2)接收來自載波芯片的信息幀;
(4.3.3)信息轉(zhuǎn)發(fā),是信息流轉(zhuǎn)的樞紐;
(4.4)在集中器接口程序中增加載波芯片執(zhí)行所需要的模式切換函數(shù)時(shí),則需要實(shí)現(xiàn)載波芯片的模式切換作業(yè)。
本發(fā)明能夠達(dá)到如下效果:
本發(fā)明將載波芯片的工作模式進(jìn)行了6種抽象,并根據(jù)每種抽象定義15種處理函數(shù),這樣具體芯片之間的載波芯片抄表接口的通用抄表程序設(shè)計(jì)就不受具體硬件廠商的影響,這樣就為后續(xù)對(duì)載波芯片抄表接口的通用抄表程序設(shè)計(jì)進(jìn)行統(tǒng)一管理創(chuàng)造了前提條件。然后根據(jù)設(shè)置好的通用抄表程序的抄表工作方式和在通用抄表程序中增加載波芯片執(zhí)行所需要的各個(gè)函數(shù),即可實(shí)現(xiàn)對(duì)寬帶載波通信模塊載波芯片抄表接口的統(tǒng)一管理和控制。
附圖說明
圖1為本發(fā)明的一種模式切換示意圖。
圖2為本發(fā)明的一種抄表流程圖。
圖3為本發(fā)明的一種工作流程圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
實(shí)施例,寬帶載波通信模塊載波芯片抄表接口統(tǒng)一管理控制方法,參見圖1-3所示,所述控制方法實(shí)現(xiàn)過程如下:
(1)將載波芯片的工作模式抽象成6種工作模式。所述6種工作模式為:空閑模式s1、定抄模式s2、隨抄模式s3、廣播模式s4、自學(xué)習(xí)模式s5和遠(yuǎn)程調(diào)試模式s6。
(2)根據(jù)載波芯片的6種工作模式,給每種載波芯片定義15種處理函數(shù)。所述15種處理函數(shù)為:空閑模式啟動(dòng)函數(shù)、定抄模式啟動(dòng)函數(shù)、隨抄模式啟動(dòng)函數(shù)、廣播模式啟動(dòng)函數(shù)、自學(xué)習(xí)模式啟動(dòng)函數(shù)、遠(yuǎn)程調(diào)試模式啟動(dòng)函數(shù)、空閑模式停止函數(shù)、定抄模式停止函數(shù)、隨抄模式停止函數(shù)、廣播模式停止函數(shù)、自學(xué)習(xí)模式停止函數(shù)、遠(yuǎn)程調(diào)試模式停止函數(shù)、載波芯片初始化函數(shù)、檔案與路由同步函數(shù)和消息解析函數(shù)。
(3)設(shè)置集中器接口程序的抄表工作方式。集中器接口程序由載波抄表線程和載波芯片管理線程組成,載波抄表線程與載波芯片管理線程之間通過郵箱通信,兩者通信由模式切換函數(shù)封裝。
(3.1)在設(shè)備上電時(shí),集中器接口程序根據(jù)載波芯片類型,調(diào)用載波芯片初始化函數(shù),初始化載波芯片,載波芯片初始化成功后,則由集中器接口程序接受定抄請(qǐng)求;
(3.2)當(dāng)一載波任務(wù)調(diào)度執(zhí)行時(shí),根據(jù)其任務(wù)模式調(diào)用對(duì)應(yīng)啟動(dòng)函數(shù),完成相應(yīng)載波模式的切換操作,執(zhí)行集中器接口程序請(qǐng)求的任務(wù),具體如下:
(3.2.1)載波抄表線程接收來自集中器接口程序的表地址和抄讀數(shù)據(jù)項(xiàng);
(3.2.2)載波抄表線程接收來自集中器接口程序的模式切換請(qǐng)求;
(3.2.3)載波抄表線程向載波芯片管理線程的上行接收郵箱中發(fā)送啟動(dòng)切換請(qǐng)求;此時(shí),載波芯片管理線程在不斷輪詢?cè)撪]箱,一旦消息抵達(dá),立即進(jìn)入idle_proc進(jìn)行解析;idle_proc將發(fā)送命令幀啟動(dòng)路由芯片進(jìn)入定抄模式;
(3.2.4)載波芯片管理線程將自己的工作模式修改為定抄;
(3.2.5)載波芯片進(jìn)入連續(xù)申報(bào)抄表地址,載波芯片管理線程調(diào)用消息解析函數(shù)將接收到來自下行鏈路的消息幀,拆幀并緩存上報(bào)地址,待載波抄表線程調(diào)用get_curr_node取走地址;
(3.2.6)載波抄表線程根據(jù)獲取的地址,判斷其是否需要抄讀,是則組幀下發(fā),否則請(qǐng)求下一結(jié)點(diǎn);
(3.2.7)載波芯片管理線程消息解析函數(shù)在做完消息轉(zhuǎn)換之后投遞至載波芯片完成載波抄表過程;
(3.2.8)如果有數(shù)據(jù)返回,載波芯片管理線程將其轉(zhuǎn)化并投遞至載波抄表線程;
(3.2.9)載波抄表線程完成拆幀、數(shù)據(jù)上報(bào)給集中器接口程序,并記錄抄表時(shí)延及路由,作為自學(xué)習(xí),重建路由的依據(jù);
(3.2.10)等待120秒,如果沒有地址申報(bào),判讀是否所有列表中的電表都已經(jīng)申報(bào);
如果所有列表中的電表都已經(jīng)申報(bào)完成,那么,
如果所有數(shù)據(jù)都經(jīng)抄回,則跳轉(zhuǎn)到第3.3步;
如果還有表的數(shù)據(jù)項(xiàng)沒有抄回,則強(qiáng)制切換到隨抄模式,組幀向載波芯片直接抄讀數(shù)據(jù);如果成功或3次還不成功,抄下一塊電表,直到補(bǔ)抄完所有電表,跳轉(zhuǎn)到第3.3步;
如果所有列表中的電表還沒有申報(bào)完成,那么判斷本次抄表重啟載波芯片是否達(dá)到3次;如果沒有達(dá)到3次,則重啟次數(shù)增加1,并跳到第3.2.4步;
如果已經(jīng)達(dá)到3次,則跳轉(zhuǎn)第3.3步;
(3.3)任務(wù)完成后,根據(jù)其任務(wù)類型調(diào)用停止函數(shù),把模式切換成空閑,并判斷上一次抄表是否全部完成,如果所有電表已經(jīng)抄表完成,則跳轉(zhuǎn)到第3.4步;如果還有電表沒有抄表成功,則直接啟動(dòng)自學(xué)習(xí),重建路由;
(3.4)如果在空閑狀態(tài),根據(jù)配置的自學(xué)習(xí)時(shí)間,觸發(fā)自學(xué)習(xí),建立路由。
在抄表流時(shí),當(dāng)載波抄表線程收到集中器接口程序接受定抄請(qǐng)求后,切換自身及路由
(4)在集中器接口程序中增加載波芯片執(zhí)行所需要的初始化函數(shù)、芯片函數(shù)、消息解析函數(shù)和模式切換函數(shù)。
(4.1)在集中器接口程序中增加載波芯片執(zhí)行所需要的初始化函數(shù)時(shí),則需要根據(jù)載波芯片的說明文檔來編寫初始化函數(shù)drv_init來完成如下作業(yè):
(4.1.1)復(fù)位載波芯片;
(4.1.2)確認(rèn)載波芯片的平臺(tái)版本cid;
(4.1.3)交互系統(tǒng)啟動(dòng)串;
(4.1.4)啟動(dòng)工作模式;
(4.1.5)根據(jù)載波芯片的需要執(zhí)行網(wǎng)絡(luò)構(gòu)建與維護(hù)工作;
(4.2)在集中器接口程序中增加載波芯片執(zhí)行所需要的芯片函數(shù)drv_sync時(shí),則需要完成同步抄表檔案與路由節(jié)點(diǎn)到芯片函數(shù)drv_sync的如下作業(yè):
(4.2.1)用路由芯片上報(bào)的節(jié)點(diǎn)遍歷電表檔案;
(4.2.2)存在則設(shè)置標(biāo)志位,不存在則直接刪除節(jié)點(diǎn);
(4.2.3)再次遍歷電表檔案,將未置位的電表檔案一一添加至路由芯片中;并在每次集中器接口程序啟動(dòng)時(shí),都要同步檔案與節(jié)點(diǎn)工作,避免手工同步可能出現(xiàn)的不一致現(xiàn)象;
(4.3)在集中器接口程序中增加載波芯片執(zhí)行所需要的消息解析函數(shù)時(shí),則需要完成消息解析函數(shù)drv_proc的如下作業(yè):
(4.3.1)解析來自抄表線程的模式切換指令與抄表幀;
(4.3.2)接收來自載波芯片的信息幀;
(4.3.3)信息轉(zhuǎn)發(fā),是信息流轉(zhuǎn)的樞紐;
(4.4)在集中器接口程序中增加載波芯片執(zhí)行所需要的模式切換函數(shù)時(shí),則需要實(shí)現(xiàn)載波芯片的模式切換作業(yè)。
在使用時(shí),先上電,然后調(diào)用初始化函數(shù)drv_init初始化載波芯片,如果初始化不成功則繼續(xù)進(jìn)行初始化,如果初始化成功則獲得載波芯片的平臺(tái)版本cid,然后讀取串口獲得采集設(shè)備請(qǐng)求;如果沒有獲得采集設(shè)備請(qǐng)求則繼續(xù)通過讀取串口獲得采集設(shè)備請(qǐng)求,如果已經(jīng)獲得采集設(shè)備請(qǐng)求則進(jìn)入處理抄表環(huán)節(jié);如果抄表任務(wù)沒完成則繼續(xù)處理抄表,如果抄表任務(wù)完成則進(jìn)入空閑模式。如果學(xué)習(xí)時(shí)間沒到則返回到讀串口獲得采集設(shè)備請(qǐng)求這步,如果習(xí)時(shí)間到了則進(jìn)入自學(xué)習(xí)和建路由,然后返回到讀串口獲得采集設(shè)備請(qǐng)求這步。
例如,以青島東軟為例介紹其基本構(gòu)成。
一、創(chuàng)建相應(yīng)的初始化函數(shù)、同步函數(shù)、消息處理函數(shù)與模式切換函數(shù);并填充到drv_map里的相應(yīng)位置。
二、初始化函數(shù),首先集中器接口程序?qū)β酚尚酒想姀?fù)位,然后集中器接口程序?qū)⑴c路由芯片核對(duì)系統(tǒng)啟動(dòng)串,設(shè)定工作模式,如果通過則函數(shù)返回,如果失敗則程序退出,利用終端watchdog重啟程序。
三、同步函數(shù),首先獲取路由芯片節(jié)點(diǎn)數(shù),然后獲取路由芯片上所有節(jié)點(diǎn)地址,再與電表檔案一一對(duì)照,如果節(jié)點(diǎn)存在但檔案不存在,那么直接刪除節(jié)點(diǎn)。如果節(jié)點(diǎn)與檔案均存在,那么設(shè)置標(biāo)識(shí)位。最后,再次遍歷檔案查找其中沒有置標(biāo)識(shí)位的檔案,將其添加至路由芯片之中。至此,檔案與節(jié)點(diǎn)實(shí)現(xiàn)一一對(duì)應(yīng)。
四、消息處理函數(shù),處理上、下行通道上的消息,依據(jù)當(dāng)前模式分派至相關(guān)處理分支。需要注意的是東軟路由芯片廣播與定抄都采用連續(xù)申報(bào)方式。申報(bào)地址抵達(dá)載波管理線程存儲(chǔ)于schdaddr與bdctimes變量之中,待載波抄表線程取走。
本實(shí)施例易于對(duì)寬帶載波通信模塊的載波芯片抄表接口進(jìn)行統(tǒng)一管理和控制。本實(shí)施例將載波芯片的工作模式進(jìn)行了6種抽象,并根據(jù)每種抽象定義15種處理函數(shù),這樣具體芯片之間的載波芯片抄表接口的通用抄表程序設(shè)計(jì)就不受具體硬件廠商的影響,這樣就為后續(xù)對(duì)載波芯片抄表接口的通用抄表程序設(shè)計(jì)進(jìn)行統(tǒng)一管理創(chuàng)造了前提條件。然后根據(jù)設(shè)置好的通用抄表程序的抄表工作方式和在通用抄表程序中增加載波芯片執(zhí)行所需要的各個(gè)函數(shù),即可實(shí)現(xiàn)對(duì)寬帶載波通信模塊載波芯片抄表接口的統(tǒng)一管理和控制。
上面結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但實(shí)現(xiàn)時(shí)不受上述實(shí)施例限制,本領(lǐng)域普通技術(shù)人員可以在所附權(quán)利要求的范圍內(nèi)做出各種變化或修改。