新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的自動(dòng)光學(xué)檢測(cè)通信系統(tǒng)設(shè)計(jì)

        基于CAN總線的自動(dòng)光學(xué)檢測(cè)通信系統(tǒng)設(shè)計(jì)

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

          2.3.1 CAN控制器的初始化

        本文引用地址:http://www.104case.com/article/264096.htm

          要實(shí)現(xiàn)CAN通信,首先要對(duì)CAN控制器進(jìn)行正確初始化設(shè)置。初始化主要完成下面的工作:節(jié)點(diǎn)控制寄存器ACP/BCR的設(shè)定;CCE和 INIT置位;錯(cuò)誤計(jì)數(shù)器最大值的設(shè)定;節(jié)點(diǎn)輸出管腳的設(shè)定;節(jié)點(diǎn)傳輸速率的設(shè)定;給節(jié)點(diǎn)配置發(fā)送、接收消息體。對(duì)于,CAN控制器的初始化可以使用DAVE進(jìn)行配置,來(lái)自動(dòng)生成代碼,也可以用戶自行編寫。初始化流程如圖4所示。

          

        4.jpg

         

          以下為相應(yīng)的程序代碼:

          

        5.jpg

         

          2.3.2 CAN控制器的發(fā)送和接收程序

          CAN模塊初始化成功后,就可以用其來(lái)傳送報(bào)文。節(jié)點(diǎn)向總線上發(fā)送報(bào)文的過程是:將待發(fā)送的數(shù)據(jù)打包成符合CAN協(xié)議的幀格式,寫入發(fā)送緩沖區(qū),并自動(dòng)發(fā)送。數(shù)據(jù)幀一幀最多只能傳輸8個(gè)字節(jié),大于8個(gè)字節(jié)的按照每8個(gè)字節(jié)為一幀傳送,剩下不足8個(gè)字節(jié)的補(bǔ)成8個(gè)字節(jié)。可以在程序中直接調(diào)用 CAN_vTransmit函數(shù)即可實(shí)現(xiàn)發(fā)送數(shù)據(jù),該函數(shù)定義如下:

          

        6.jpg

         

          接收數(shù)據(jù)有查詢方式或中斷方式。這里采用中斷方式,要實(shí)現(xiàn)的功能是:進(jìn)入中斷接收程序,判斷中斷是否是接受中斷;若是將數(shù)據(jù)讀出緩存器并進(jìn)行判斷,再進(jìn)入相應(yīng)的命令和數(shù)據(jù)處理函數(shù)。控制器接收和發(fā)送流程如圖5所示。

          

        7.jpg

         

          3 結(jié)束語(yǔ)

          該自動(dòng)光學(xué)檢測(cè)通信系統(tǒng)已經(jīng)實(shí)現(xiàn)且通過了聯(lián)調(diào),數(shù)據(jù)傳送穩(wěn)定,并已應(yīng)用于PCB板面缺陷自動(dòng)光學(xué)檢測(cè)儀的控制系統(tǒng)。該自動(dòng)光學(xué)檢測(cè)通信系統(tǒng)滿足可靠性和靈活性的高要求,實(shí)現(xiàn)控制系統(tǒng)各單元相對(duì)獨(dú)立,各單元之間的連線簡(jiǎn)潔,使系統(tǒng)操作簡(jiǎn)單,使用可靠,取得了良好的使用效果。

        通信相關(guān)文章:通信原理



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

        關(guān)鍵詞: CAN總線 英飛凌 XCl64CS

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 溆浦县| 三原县| 安阳市| 嘉黎县| 台山市| 邓州市| 探索| 大邑县| 淄博市| 枞阳县| 襄城县| 白银市| 淮北市| 宾川县| 长宁县| 正定县| 张家口市| 安泽县| 关岭| 铜川市| 长宁县| 莱西市| 梅河口市| 鄂托克旗| 山东| 汨罗市| 高尔夫| 美姑县| 连江县| 阿合奇县| 潮州市| 荃湾区| 铜山县| 凌云县| 台东县| 安吉县| 平远县| 志丹县| 武乡县| 泰宁县| 漳州市|