新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于P89C668單片機的CAN總線接口設計

        基于P89C668單片機的CAN總線接口設計

        作者: 時間:2012-03-14 來源:網絡 收藏

        (Controller Area Network),又稱控制器局域網,屬于現(xiàn)場的范疇,是一種有效支持分布式控制或實時控制的串行通信網絡.與其它幾種現(xiàn)場相比, 總線是最容易實現(xiàn)、價格也最為低廉.由于其性能好,可靠性高、靈活,現(xiàn)已廣泛應用于工業(yè)現(xiàn)場控制、智能大廈、小區(qū)防范、交通工具、醫(yī)療儀器、環(huán)境監(jiān)控等眾多領域.

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

        總線規(guī)范已被國際標準化組織(ISO)定為國際標準,CAN協(xié)議也是建立在國際標準化組織的開放系統(tǒng)互連參考模型(OSI)基礎上的.CAN總線主要工作在數(shù)據(jù)鏈路層和物理層,用戶可在其基礎上開發(fā)適合系統(tǒng)實際需要的應用層通信協(xié)議,由于CAN總線的可靠性高,使應用層通信協(xié)議得以大大簡化.目前市場上有多種不同型號的CAN控制器,它們實現(xiàn)CAN協(xié)議部分電路的結構和功能大多相同,只是與部分的結構和方式有一些差異.

        為了提高硬件電路的效率,簡化電路上的復雜性,保證電路的電氣兼容性,本文采用PHILIPS公司生產的和CAN控制器SJA1000了CAN節(jié)點電路,并介紹了相關的軟件設計.

        1 CAN總線節(jié)點硬件電路設計

        CAN節(jié)點接口硬件電路原理如圖1所示.采用PHILIPS公司生產的、CAN控制器SJA1000和CAN總線收發(fā)器PCA82C250設計接口電路來實現(xiàn)CAN總線通信.

        26.jpg
        圖1 CAN總線接點接口硬件電路原理

        單片機內帶64kB Flash存儲器,該存儲器既可并行編程,在系統(tǒng)編程ISP中也可串行編程,在實際的成型產品中可通過ISP升級用戶程序. 在Boot ROM程序中,可通過一個默認的串行下載器(UART)對Flash存儲器作ISP編程,而在Flash代碼區(qū)中并不需要調用下載器的代碼,用戶程序可通過調用在Boot ROM中的標準子程序對Flash存儲器擦除和再編程(即IAP).

        P89C688在6個時鐘周期內執(zhí)行一條指令,一個OTP位讓用戶可選擇傳統(tǒng)的12個時鐘周期.P89C688用先進CMOS工藝制造,是80C51單片機家族的衍生品,其指令集和80C51相同.該單片機有四個8位I/O口,三個16位定時器/事件計數(shù)器,多中斷源,四個優(yōu)先級,可嵌套中斷結構,一個增強型UART和片內振蕩器以及時序電路.P89C668新增特性使其成為一個功能強大的單片機,可為某些應用提供PWM、高速的I/O和加/減計數(shù).

        SJA1000 是PHILIPS 公司生產的獨立CAN 通信控制器,它既支持CAN2.0A,又支持CAN2.0B,與PCA82C200 CAN 控制器兼容(BasicCAN),并可替代PCA82C200;增加了一種新的工作模式PeliCAN,使其支持具有很多新特性的CAN2.0B 協(xié)議;集成了CAN 協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理;具有多主結構、總線訪問優(yōu)先權、硬件濾波等特點.

        PC82C250為CAN總線收發(fā)器,是CAN 控制器和物理總線的接口,提供對總線的驅動發(fā)送能力、對CAN控制器的差動發(fā)送能力和對CAN控制器的差動接收能力.它具有很強的抗瞬間干擾和保護總線的能力,以及三種不同的工作方式即高速、斜率控制和待機,如表1所示.總線上的某一個節(jié)點掉電不會影響總線,在40米內應用的速度可達1M baud,最多可掛110個節(jié)點.

        從圖1 可看出,該硬件電路主要由單片機P89C668、CAN 獨立控制器SJA1000 和CAN 收發(fā)器PCA82C250 組成.

        27.jpg


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 高雄市| 宁陵县| 固始县| 轮台县| 文山县| 宝清县| 山丹县| 宁国市| 六安市| 筠连县| 忻州市| 寿光市| 垫江县| 酒泉市| 祁连县| 乌审旗| 仙居县| 肇东市| 雅江县| 岚皋县| 来凤县| 双峰县| 呼和浩特市| 浪卡子县| 内江市| 万载县| 新民市| 晋州市| 祥云县| 同德县| 安远县| 司法| 从江县| 沈阳市| 蕉岭县| 湟中县| 双鸭山市| 全南县| 许昌县| 平塘县| 雅安市|