本發(fā)明涉及數(shù)字信息的傳輸,電數(shù)字?jǐn)?shù)據(jù)處理,bms協(xié)議等,尤其涉及一種基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法。
背景技術(shù):
1、rs485和can總線是工業(yè)自動(dòng)化領(lǐng)域廣泛應(yīng)用的兩種通信協(xié)議。rs485以其長通信距離、高差分信號(hào)抗干擾性等優(yōu)點(diǎn)在諸多場合得到應(yīng)用。而can總線則以其高實(shí)時(shí)性、多主站通信能力等特點(diǎn)在復(fù)雜工業(yè)環(huán)境中占據(jù)重要地位。然而,傳統(tǒng)的?bms通信rs485、can是有兩個(gè)物理接口和兩個(gè)通信協(xié)議,在復(fù)雜的工作環(huán)境中容易出現(xiàn)物理接口接錯(cuò),導(dǎo)致bms系統(tǒng)性能下降,造成掉包和連接失敗等通信錯(cuò)誤。為解決這一問題,目前存在將can和rs485物理總線合并在同一個(gè)總線上的技術(shù),但是由于can和rs485物理總線都是差分信號(hào),通信出錯(cuò)問題依然頻發(fā)。
2、綜上所述,現(xiàn)有bms通信技術(shù)存在易出現(xiàn)物理接口接錯(cuò),bms系統(tǒng)性能下降,通信出錯(cuò)頻發(fā)等技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)上述現(xiàn)有技術(shù)存在的不足,本發(fā)明提供一種基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,以避免物理接口接錯(cuò),提升bms系統(tǒng)的性能,減少通信出錯(cuò)。
2、本發(fā)明提供的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,包括以下步驟:
3、將can與rs485總線設(shè)置為二合一的bms協(xié)議的通信總線,所述二合一的bms協(xié)議的通信總線搭載n個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信,同一個(gè)接口接入rs485總線或can總線時(shí)自動(dòng)識(shí)別是can通信還是rs485通信,所述bms系統(tǒng)配置為從機(jī),與所述bms系統(tǒng)通信的上位機(jī)為主機(jī);n為大于1的自然數(shù);
4、當(dāng)所述主機(jī)和所述從機(jī)之間發(fā)生數(shù)據(jù)傳輸通信時(shí),在數(shù)據(jù)發(fā)送端,為每個(gè)數(shù)據(jù)包添加幀頭、讀寫位、功能碼、心跳包、校驗(yàn)碼以及幀尾位,在數(shù)據(jù)接收端,使用與所述數(shù)據(jù)發(fā)送端相同的校驗(yàn)算法對(duì)接收到的數(shù)據(jù)包進(jìn)行校驗(yàn)碼驗(yàn)證,如果校驗(yàn)碼不匹配,則判定數(shù)據(jù)包傳輸錯(cuò)誤,并請求重傳;
5、在所述bms系統(tǒng)中設(shè)置通信異常檢測機(jī)制,所述通信異常檢測機(jī)制實(shí)時(shí)監(jiān)測通信狀態(tài)和數(shù)據(jù)傳輸情況,當(dāng)檢測到通信異常時(shí),根據(jù)異常類型自動(dòng)啟動(dòng)相應(yīng)的處理流程。
6、進(jìn)一步,所述二合一的bms協(xié)議的通信總線搭載n個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信,包括:
7、所述二合一的bms協(xié)議的通信總線同時(shí)連接rs485通信接口和can通信接口,所述rs485通信接口連接m個(gè)bms系統(tǒng),所述can通信接口連接p個(gè)bms系統(tǒng);所述m個(gè)bms系統(tǒng)和所述p個(gè)bms系統(tǒng)之和等于n個(gè)bms系統(tǒng),分別連接所述二合一的bms協(xié)議的通信總線進(jìn)行并機(jī)通信。
8、進(jìn)一步,所述m個(gè)bms系統(tǒng)和所述p個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信時(shí),通過配置的總線控制器和接口適配器,實(shí)現(xiàn)rs485和can通信協(xié)議在總線上的透明傳輸。
9、進(jìn)一步,n個(gè)所述bms系統(tǒng)的共享節(jié)點(diǎn)信息最小支持16?個(gè)節(jié)點(diǎn),n個(gè)所述bms系統(tǒng)中不同控制單元之間通過所述共享節(jié)點(diǎn)信息進(jìn)行通信。
10、進(jìn)一步,n個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信時(shí),包括:根據(jù)n個(gè)所述bms系統(tǒng)中不同控制單元的數(shù)據(jù)傳輸需求,選擇適配所述數(shù)據(jù)傳輸需求的總線技術(shù)進(jìn)行通信。
11、進(jìn)一步,根據(jù)n個(gè)所述bms系統(tǒng)中不同控制單元的數(shù)據(jù)傳輸需求,選擇適配所述數(shù)據(jù)傳輸需求的總線技術(shù)進(jìn)行通信,包括:
12、判斷n個(gè)所述bms系統(tǒng)中不同控制單元對(duì)需要傳輸?shù)臄?shù)據(jù)量需求和傳輸速度需求;
13、在需要傳輸?shù)臄?shù)據(jù)量大于預(yù)設(shè)的大數(shù)據(jù)量閾值且數(shù)據(jù)傳輸速度大于預(yù)設(shè)的高速率閾值時(shí),自動(dòng)選擇所述二合一的bms協(xié)議的通信總線中can總線的通信格式進(jìn)行通信;
14、在需要傳輸?shù)臄?shù)據(jù)量小于預(yù)設(shè)的大數(shù)據(jù)量閾值或數(shù)據(jù)傳輸速度小于預(yù)設(shè)的高速率閾值時(shí),自動(dòng)選擇所述二合一的bms協(xié)議的通信總線中rs485總線的通信格式進(jìn)行通信。
15、進(jìn)一步,選擇所述rs485總線的通信格式進(jìn)行通信,所述主機(jī)發(fā)送命令時(shí)數(shù)據(jù)包的幀頭占1字節(jié),讀寫位占1字節(jié),功能碼1字節(jié),心跳包占1字節(jié),校驗(yàn)碼占1字節(jié),幀尾位占1字節(jié);所述從機(jī)響應(yīng)命令時(shí)數(shù)據(jù)包幀頭占1字節(jié),讀寫位占1字節(jié),功能碼1字節(jié),心跳包占1字節(jié),校驗(yàn)碼占1字節(jié),幀尾位占1字節(jié)。
16、進(jìn)一步,選擇所述can總線的通信格式進(jìn)行通信,所述主機(jī)發(fā)送can數(shù)據(jù)幀時(shí),can通信格式包括數(shù)據(jù)長度碼dlc為8,對(duì)應(yīng)數(shù)據(jù)長度碼dlc的數(shù)據(jù)data的字節(jié)為byte0、byte1、byte2、byte3、byte4、byte5、byte6、byte7;byte0為幀頭,byte1為起始功能碼,byte2為索引位,byte3為起始字節(jié),byte4為長度,byte5和byte6均為0,byte7為校驗(yàn)碼crc;所述從機(jī)響應(yīng)所述can數(shù)據(jù)幀的數(shù)據(jù)內(nèi)容,can通信格式包括數(shù)據(jù)長度碼dlc為8,對(duì)應(yīng)數(shù)據(jù)長度碼dlc的數(shù)據(jù)data的字節(jié)為byte0-byte7。
17、進(jìn)一步,基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,包括:設(shè)置通信異步機(jī)制,所述通信異步機(jī)制用于確保can總線和rs485總線在數(shù)據(jù)傳輸過程中進(jìn)行異步性通信,以防止兩種通信相互信號(hào)干涉。
18、進(jìn)一步,數(shù)據(jù)接收時(shí),數(shù)據(jù)接收方通過所述校驗(yàn)碼對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果不正確,則認(rèn)為數(shù)據(jù)出現(xiàn)錯(cuò)誤,并采取相應(yīng)的錯(cuò)誤處理措施。
19、本發(fā)明與現(xiàn)有技術(shù)相比,其有益效果如下:
20、本發(fā)明提供一種基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,通過將can與rs485總線設(shè)置為二合一的bms協(xié)議的通信總線,所述二合一的bms協(xié)議的通信總線搭載n個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信,同一個(gè)接口接入rs485總線或can總線時(shí)自動(dòng)識(shí)別是can通信還是rs485通信,所述bms系統(tǒng)配置為從機(jī),與所述bms系統(tǒng)通信的上位機(jī)為主機(jī),當(dāng)所述主機(jī)和所述從機(jī)之間發(fā)生數(shù)據(jù)傳輸通信時(shí),在數(shù)據(jù)發(fā)送端,為每個(gè)數(shù)據(jù)包添加幀頭、讀寫位、功能碼、心跳包、校驗(yàn)碼以及幀尾位,在數(shù)據(jù)接收端,使用與所述數(shù)據(jù)發(fā)送端相同的校驗(yàn)算法對(duì)接收到的數(shù)據(jù)包進(jìn)行校驗(yàn)碼驗(yàn)證,如果校驗(yàn)碼不匹配,則判定數(shù)據(jù)包傳輸錯(cuò)誤,并請求重傳,在所述bms系統(tǒng)中設(shè)置通信異常檢測機(jī)制,所述通信異常檢測機(jī)制實(shí)時(shí)監(jiān)測通信狀態(tài)和數(shù)據(jù)傳輸情況,當(dāng)檢測到通信異常時(shí),根據(jù)異常類型自動(dòng)啟動(dòng)相應(yīng)的處理流程,從而兼容同一個(gè)接口實(shí)現(xiàn)兩種不同的物理通信協(xié)議,提升bms系統(tǒng)的性能,減少通信出錯(cuò)。
1.一種基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,包括:
2.如權(quán)利要求1所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,所述二合一的bms協(xié)議的通信總線搭載n個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信,包括:
3.如權(quán)利要求2所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,所述m個(gè)bms系統(tǒng)和所述p個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信時(shí),通過配置的總線控制器和接口適配器,實(shí)現(xiàn)rs485和can通信協(xié)議在總線上的透明傳輸。
4.如權(quán)利要求1所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,n個(gè)所述bms系統(tǒng)的共享節(jié)點(diǎn)信息最小支持16?個(gè)節(jié)點(diǎn),n個(gè)所述bms系統(tǒng)中不同控制單元之間通過所述共享節(jié)點(diǎn)信息進(jìn)行通信。
5.如權(quán)利要求1所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,n個(gè)bms系統(tǒng)進(jìn)行并機(jī)通信時(shí),包括:根據(jù)n個(gè)所述bms系統(tǒng)中不同控制單元的數(shù)據(jù)傳輸需求,選擇適配所述數(shù)據(jù)傳輸需求的總線技術(shù)進(jìn)行通信。
6.如權(quán)利要求5所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,根據(jù)n個(gè)所述bms系統(tǒng)中不同控制單元的數(shù)據(jù)傳輸需求,選擇適配所述數(shù)據(jù)傳輸需求的總線技術(shù)進(jìn)行通信,包括:
7.如權(quán)利要求6所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,選擇所述rs485總線的通信格式進(jìn)行通信,所述主機(jī)發(fā)送命令時(shí)數(shù)據(jù)包的幀頭占1字節(jié),讀寫位占1字節(jié),功能碼1字節(jié),心跳包占1字節(jié),校驗(yàn)碼占1字節(jié),幀尾位占1字節(jié);所述從機(jī)響應(yīng)命令時(shí)數(shù)據(jù)包幀頭占1字節(jié),讀寫位占1字節(jié),功能碼1字節(jié),心跳包占1字節(jié),校驗(yàn)碼占1字節(jié),幀尾位占1字節(jié)。
8.如權(quán)利要求6所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,選擇所述can總線的通信格式進(jìn)行通信,所述主機(jī)發(fā)送can數(shù)據(jù)幀時(shí),can通信格式包括數(shù)據(jù)長度碼dlc為8,對(duì)應(yīng)數(shù)據(jù)長度碼dlc的數(shù)據(jù)data的字節(jié)為byte0、byte1、byte2、byte3、byte4、byte5、byte6、byte7;byte0為幀頭,byte1為起始功能碼,byte2為索引位,byte3為起始字節(jié),byte4為長度,byte5和byte6均為0,byte7為校驗(yàn)碼crc;所述從機(jī)響應(yīng)所述can數(shù)據(jù)幀的數(shù)據(jù)內(nèi)容,can通信格式包括數(shù)據(jù)長度碼dlc為8,對(duì)應(yīng)數(shù)據(jù)長度碼dlc的數(shù)據(jù)data的字節(jié)為byte0-byte7。
9.如權(quán)利要求1所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,包括:設(shè)置通信異步機(jī)制,所述通信異步機(jī)制用于確保can總線和rs485總線在數(shù)據(jù)傳輸過程中進(jìn)行異步性通信,以防止兩種通信相互信號(hào)干涉。
10.如權(quán)利要求7所述的基于can與rs485總線二合一的bms協(xié)議的通信防錯(cuò)方法,其特征在于,數(shù)據(jù)接收時(shí),數(shù)據(jù)接收方通過所述校驗(yàn)碼對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果不正確,則認(rèn)為數(shù)據(jù)出現(xiàn)錯(cuò)誤,并采取相應(yīng)的錯(cuò)誤處理措施。