<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 利用C164單片機(jī)設(shè)計(jì)自動(dòng)攤鋪機(jī)通信模塊

          利用C164單片機(jī)設(shè)計(jì)自動(dòng)攤鋪機(jī)通信模塊

          作者: 時(shí)間:2012-08-31 來(lái)源:網(wǎng)絡(luò) 收藏

          6.2 CAN總線通信軟件設(shè)計(jì)

          攤鋪機(jī)系統(tǒng)CAN總線通信軟件設(shè)計(jì)的任務(wù)是:在選定通信規(guī)程CAN2.0B以后,規(guī)定各計(jì)算機(jī)傳送數(shù)據(jù)的格式和約定;協(xié)調(diào)各計(jì)算機(jī)之間的通信;統(tǒng)一考慮通信中的可靠性措施。

          6.2.1 數(shù)據(jù)發(fā)送模式

          由于要傳送數(shù)據(jù)的重要程度、傳送周期不同,在本系統(tǒng)的通信中采用兩種不同的數(shù)據(jù)發(fā)送模式:

          (1)發(fā)送模式0:即發(fā)送一次,不檢測(cè)接收是否正確,發(fā)送結(jié)束返回。接收方接收到此類數(shù)據(jù)包后,不必發(fā)送應(yīng)答信息包。該數(shù)據(jù)包的特點(diǎn)是:按照一定周期定時(shí)發(fā)送,用于主操作面板上的狀態(tài)顯示,所以偶爾的傳送失敗不會(huì)影響系統(tǒng)的正常運(yùn)行與操作。

          (2) 發(fā)送模式1:即一定要將數(shù)據(jù)包正確發(fā)送給接收方。采用重發(fā)機(jī)制,等待接收方應(yīng)答,若沒(méi)有接收到應(yīng)答則重發(fā)。5次發(fā)送均失敗,則返回FALSE,由發(fā)送方做出相應(yīng)的處理動(dòng)作,如報(bào)警、停機(jī)等;成功則返回TRUE。該數(shù)據(jù)包的特點(diǎn)是:由相應(yīng)事件觸發(fā)發(fā)送,如果傳送失敗,將影響系統(tǒng)的正常運(yùn)行。

          6.2.2 數(shù)據(jù)發(fā)送模式

          對(duì)于攤鋪機(jī)系統(tǒng)來(lái)說(shuō),其CAN 網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量較少,而每種數(shù)據(jù)包只需要一部分節(jié)點(diǎn)來(lái)接收,因此在通信設(shè)計(jì)中利用數(shù)據(jù)幀標(biāo)識(shí)符來(lái)實(shí)現(xiàn)定址組播。為避免接收不必要的數(shù)據(jù)包,對(duì)接收節(jié)點(diǎn)按位編址,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)驗(yàn)收濾波中的一位。若一個(gè)報(bào)文標(biāo)識(shí)符高8位中對(duì)應(yīng)位為1,則接收;否則忽略。因此只要在發(fā)送節(jié)點(diǎn)根據(jù)數(shù)據(jù)包內(nèi)容設(shè)置合適的報(bào)文標(biāo)識(shí)符,數(shù)據(jù)包即可被相關(guān)節(jié)點(diǎn)正確接收,而被無(wú)關(guān)節(jié)點(diǎn)忽略。

          6.2.3 校驗(yàn)

          在CAN 結(jié)構(gòu)的MAC層中已經(jīng)實(shí)現(xiàn)了循環(huán)冗余碼〔CRC〕校驗(yàn)。但攤鋪機(jī)工作環(huán)境惡劣,工作條件復(fù)雜,為了系統(tǒng)通信的可靠性,在控制程序級(jí)的通信中也進(jìn)行校驗(yàn)。為減輕系統(tǒng)負(fù)擔(dān)及降低程序復(fù)雜性,控制程序級(jí)的校驗(yàn)采用了比較簡(jiǎn)單的求和取模校驗(yàn)方式,每個(gè)數(shù)據(jù)幀的最后一個(gè)數(shù)據(jù)字節(jié)作為校驗(yàn)和,其值是之前所有數(shù)據(jù)字節(jié)求和后對(duì)256取模的值。各節(jié)點(diǎn)的接收接口中以相同方法計(jì)算校驗(yàn)和,若校驗(yàn)正確則將數(shù)據(jù)包壓入接收隊(duì)列,否則拋棄該包。

          6.2.4 數(shù)據(jù)包格式及內(nèi)容

          其中:L取值為2—8:采用CAN2.0B標(biāo)準(zhǔn),使用29位標(biāo)識(shí)符。

          ID28—ID21:確定此幀的接收節(jié)點(diǎn),每位代表1個(gè)節(jié)點(diǎn),可以廣播。

          ID20—IDl7:此幀的順序號(hào),每發(fā)一個(gè)幀增1,用于區(qū)分不同數(shù)據(jù)幀與重發(fā)數(shù)據(jù)幀。

          IDl6:應(yīng)答標(biāo)志位:為1表示此幀需要應(yīng)答,為0表示此幀不需應(yīng)答。

          IDl5—IDl3:指定此幀的發(fā)送節(jié)點(diǎn),0—3分別代表左交互機(jī)、右交互機(jī)、車(chē)體行駛測(cè)控機(jī)和找平輸分料測(cè)控機(jī)。

          ID12—ID0:無(wú)意義。

          6.3 CAN總線通信編程

          CAN總線通信編程是一個(gè)比較煩瑣的事情,主要是涉及諸多的CAN寄存器,但只要掌握其規(guī)律和技術(shù)關(guān)鍵,就會(huì)變得容易起來(lái)。下面是CAN總線通信編程的實(shí)現(xiàn)步驟:

          (1)CAN模量初始化;

          (2)定義每一個(gè)信息體;

          (3)裝載信息體數(shù)據(jù)(僅針對(duì)發(fā)送信息體);

          (4)接收信息體接收數(shù)據(jù);

          (5)發(fā)送一個(gè)信息體;

          (6)檢查一個(gè)信息體;

          (7)檢查是否關(guān)閉CAN總線。

          為便于進(jìn)行模塊化編程,將CAN通信功能封裝成一個(gè)個(gè)子程序,并且生成一個(gè)專用的程序庫(kù),供不同的程序員調(diào)用,這樣就提高了編程效率,并易于功能擴(kuò)展。下面給出其中的兩個(gè)子程序。

          下面為發(fā)送一個(gè)信息體的CAN通信程序:

          #include //寄存器定義

          #include //CAN控制寄存器定義

          void send_mo_16x(unsigned char a) //發(fā)送信息體“a”(114)

          {

          if((a<15)(a))*msgctrl_ptr_16x[a]=0xefff; //置位TXRQ

          }

          下面為檢查是否關(guān)閉CAN總線的CAN通信程序:

          #include //CAN控制寄存器定義

          unsigned char check_busoff_16x(void) //檢查總線是否關(guān)閉,并在必要時(shí)恢復(fù)

          {

          unsigned char busoff_var=0;

          if(SR0x80) //如果BOFF=1

          {

          busoff_var=1;

          CR=CR0xfe; //恢復(fù)關(guān)閉的總線(清零INIT)

          }

          }

          7.結(jié)論

          由于攤鋪機(jī)的功能繁多,運(yùn)作復(fù)雜,工作環(huán)境十分惡劣,因此控制系統(tǒng)的工作可靠性問(wèn)題就是自動(dòng)攤鋪機(jī)設(shè)計(jì)的關(guān)鍵。在本系統(tǒng)中,利用RS232C 實(shí)現(xiàn)了主交互機(jī)與移動(dòng)電話之間的串行通信;采用帶CAN總線的單片機(jī)完成不同模塊各自的功能,又通過(guò)CAN總線傳送數(shù)據(jù)或命令,實(shí)現(xiàn)了功能分散又集中監(jiān)視,危險(xiǎn)分散。因此,很適合于自動(dòng)攤鋪機(jī)中分布式控制系統(tǒng)的實(shí)現(xiàn)?,F(xiàn)場(chǎng)實(shí)驗(yàn)結(jié)果表明:該具有良好的可靠性、穩(wěn)定性和安全性。


          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();