首先,需要理解什么是CAN線(xiàn)的負(fù)載率。一般業(yè)內(nèi)的對(duì)負(fù)載率的定義為實(shí)際數(shù)據(jù)傳輸速率和理論上能達(dá)到的數(shù)據(jù)傳輸速率的比值。
可以類(lèi)比景區(qū)的負(fù)載率,每個(gè)景區(qū)都有一個(gè)負(fù)荷上限,比如說(shuō)10000人,如果此時(shí)景區(qū)內(nèi)只有1000人,那么這時(shí)的景區(qū)負(fù)載率是10%。景區(qū)負(fù)載率是一個(gè)在空間上定義的概念,它說(shuō)明了在空間上資源的被使用情況,而總線(xiàn)負(fù)載率則不然,其是在時(shí)間上定義的一個(gè)概念,說(shuō)明了在時(shí)間上資源被使用的情況。因?yàn)閭鬏斔俾室话闶前疵雭?lái)計(jì)算,數(shù)據(jù)傳輸速率既為每秒鐘傳輸了多少個(gè)BIT,負(fù)載率也默認(rèn)為在一秒的時(shí)間范圍內(nèi)位資源的使用情況。理論上波特率為500K的總線(xiàn)上每秒鐘能夠傳輸500000個(gè)BIT,如果在某一秒中總線(xiàn)上只傳輸了100000個(gè)BIT,則總線(xiàn)負(fù)載率為20%。如果按照空間上負(fù)載率的概念做簡(jiǎn)單類(lèi)比,CAN總線(xiàn)上一般要求負(fù)載率不大于30%似乎不能被理解,畢竟物盡其用這個(gè)觀念是被大家廣為接受的。要深入系統(tǒng)的理解為什么30%成為目前業(yè)內(nèi)普遍遵守的負(fù)載率高壓線(xiàn),就不得的不引入CAN理論中另外幾個(gè)重要的概念:ID仲裁、閑時(shí)發(fā)送和反應(yīng)時(shí)間。
CAN總線(xiàn)本質(zhì)上是一種串口通訊,靠在時(shí)間線(xiàn)上對(duì)每一位的電壓值進(jìn)行調(diào)制來(lái)搭載不同的信號(hào)。因?yàn)楦鞴?jié)點(diǎn)共用總線(xiàn)介質(zhì),對(duì)總線(xiàn)的使用權(quán)界定就至關(guān)重要。先說(shuō)結(jié)論:只有在總線(xiàn)空閑時(shí),發(fā)送節(jié)點(diǎn)才能向總線(xiàn)上發(fā)送幀起始及后續(xù)幀ID,只有在幀ID贏得仲裁時(shí),發(fā)送節(jié)點(diǎn)擁有總線(xiàn)控制權(quán)進(jìn)而向總線(xiàn)發(fā)送報(bào)文剩余部分,在仲裁中失敗的節(jié)點(diǎn)讓出總線(xiàn)控制權(quán)等待下次總線(xiàn)空閑時(shí)繼續(xù)嘗試發(fā)送。我們可以看到如果某一個(gè)節(jié)點(diǎn)需要發(fā)送一幀報(bào)文,它需要同時(shí)滿(mǎn)足兩個(gè)條件:1、總線(xiàn)是空閑的,即目前沒(méi)有節(jié)點(diǎn)在發(fā)送報(bào)文,在總線(xiàn)上表示為節(jié)點(diǎn)監(jiān)測(cè)到11個(gè)連續(xù)的隱性位;2、所需發(fā)送的報(bào)文贏得ID仲裁,即報(bào)文優(yōu)先級(jí)較高。
一個(gè)報(bào)文在試圖發(fā)送時(shí),需要滿(mǎn)足上述兩個(gè)條件才能完成發(fā)送。這里的問(wèn)題就是:如果一個(gè)優(yōu)先級(jí)相對(duì)較低的節(jié)點(diǎn)向外發(fā)報(bào)文時(shí),會(huì)因?yàn)椴粩嗟卦谥俨弥惺《鴮?dǎo)致發(fā)送延遲。如果延遲過(guò)大會(huì)引起通訊失敗。
負(fù)載率越高,代表需要發(fā)送的數(shù)據(jù)越多,相對(duì)來(lái)說(shuō)低優(yōu)先級(jí)節(jié)點(diǎn)發(fā)生通訊延遲的概率越大。
CANWeb總線(xiàn)對(duì)CAN通信負(fù)載及通信丟包的顯示、檢測(cè):
下圖為從站(SIO)總覽Web頁(yè)面能實(shí)時(shí)顯示實(shí)際CAN速度及丟包累計(jì)數(shù):
50KBPS 為設(shè)定CAN速度,(7.0)KBPS為總線(xiàn)實(shí)際CAN速度,實(shí)際CAN速度需小于設(shè)定CAN速度的30%!?。。?!
為實(shí)時(shí)通信正常讀上來(lái)的數(shù)值:
MXPD_從站發(fā)送較大周期,單位ms;
MNPD_從站變化觸發(fā)發(fā)送較小周期,單位ms;
AIDB_從站AI發(fā)送 變化觸發(fā)死區(qū)值,DI無(wú)效;
DevSNo_從站設(shè)備編號(hào);
OtTmp:從站設(shè)備的溫度;
DltRcv_從站發(fā)送的包數(shù)量與 主站 接收的從站包數(shù)量的差值,即主站的丟包累計(jì)數(shù)量,DltRcv通信正常應(yīng)保持不變,不變即不丟包!?。?/span>
RcvCnt為主站接收從站的累計(jì)包數(shù)量,正常時(shí)會(huì)不斷增加;
RcvGap_主站接收從站包的時(shí)間間隔(mS),如“cm_ok”,表示此從站與MST的CAN通信正常,為“cm_nok”表示通信斷開(kāi),正常應(yīng)為“cm_ok”。
冗余雙CAN_STM32F105Keil開(kāi)發(fā)板及源程序說(shuō)明:
您還在用RS485或232通信嗎?那就落伍了!開(kāi)發(fā)板套件20天免費(fèi)測(cè)試,不好用、搞不定可退貨!
CANweb是結(jié)合CAN和以太網(wǎng)優(yōu)點(diǎn)的CAN現(xiàn)場(chǎng)總線(xiàn)高層協(xié)議,比CANOpen\DeviceNet\iCAN簡(jiǎn)易、好用;
CANWeb通信可靠(可選冗余)、節(jié)點(diǎn)多(98個(gè)CAN節(jié)點(diǎn))、速度快(1Mbps)、通信距離遠(yuǎn)(10公里);
通過(guò)CANWeb,可Web網(wǎng)頁(yè)瀏覽監(jiān)控、調(diào)試、配置您的每個(gè)CAN節(jié)點(diǎn)內(nèi)部變量和硬件接口DIDOAIAO;
通過(guò)CANWeb,可用以太網(wǎng)、RS485、PROFIBUS、CAN、I2C、SPI與每個(gè)CAN節(jié)點(diǎn)實(shí)時(shí)快速通信;
CANWeb接口成本低,和增加一個(gè)RS485接口成本一樣,雙CAN的STM32F105RBT6芯片僅8元左右!
CANWeb技術(shù)全面開(kāi)源,無(wú)授權(quán)費(fèi),免費(fèi)提供CANWeb協(xié)議C++Keil源程序(可為用戶(hù)芯片定制);
用戶(hù)可在此冗余雙CAN開(kāi)發(fā)板(含4個(gè)DI/4個(gè)DO/1個(gè)AI/1個(gè)AO)的PCB文件及Keil源程序基礎(chǔ)上,
輕松、快捷開(kāi)發(fā)自己的CANWeb總線(xiàn)產(chǎn)品,如多通道DI、DO、AI、AO模塊、溫度、壓力現(xiàn)場(chǎng)智能
儀表、電動(dòng)調(diào)節(jié)閥、變頻器、電磁閥、電量表、RS485網(wǎng)關(guān)(可與RS485的設(shè)備通信) 等設(shè)備。
** 通過(guò)MST模塊的Web頁(yè)面,用戶(hù)可實(shí)時(shí)監(jiān)視、控制開(kāi)發(fā)板從站上的DI\DO\AI\AO硬件接口;
** 通過(guò)MST模塊的Web頁(yè)面,用戶(hù)可實(shí)時(shí)監(jiān)視、控制48個(gè)開(kāi)發(fā)板從站內(nèi)部WORD變量;
** 通過(guò)MST模塊的Web頁(yè)面,用戶(hù)可配置72個(gè)開(kāi)發(fā)板從站內(nèi)部WORD配置參數(shù),配置參數(shù)可掉電保存;
** 通過(guò)MST模塊的以太網(wǎng)或RS485 Modbus協(xié)議,用戶(hù)可與98個(gè)開(kāi)發(fā)板從站實(shí)時(shí)交換數(shù)據(jù)。
02CANWeb現(xiàn)場(chǎng)總線(xiàn)協(xié)議詳細(xì)介紹180108.doc
04冗余雙CAN_STM32F105Keil開(kāi)發(fā)板及源程序說(shuō)明80501.doc
06冗余雙CANWebSTMF105KeilC++源程序80131.zip
詳細(xì)資料:請(qǐng)加 QQ群204408503自行下載資料