999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CAN控制器MCP2515-I/SO的模擬SPI串口通信的應用

2009-04-29 00:00:00陳雄威
電腦知識與技術 2009年26期

摘要:SPI接口是單片機應用系統中常用的串行擴展接口之一,通過汽車EPB輔助控制器設計的具體項目的應用,重點介紹了基于SPI的CAN控制器與單片機通信的連接方法,及模擬SPI總線時序的軟件實現。

關鍵詞:SPI;MCP2515-I/SO;CAN總線;通信

中圖分類號:TP368.2 文獻標識碼:A文章編號:1009-3044(2009)26-7508-03

Application of Simulated SPI Based on CAN Controller MCP2515-I/SO

CHEN Xiong-wei

(Shenzhen Municipal Administration Bureau of Organization Affairs, Shenzhen 518035, China)

Abstract: SPI is one of useful expandable serial interface in the application systems of single-chip, with the application in the design of EPB assistant controller, introduces the connection method of communication between CAN controller and single-chip,and realizes the SPI bus simulated by software.

Key words: SPI; MCP2515-I/SO; CAN Bus; Communication

SPI(Serial Peripheral Interface,串行外圍設備接口)是一種高速、全雙工、同步的串行通信接口,廣泛應用于微處理器、微控器和外圍擴展芯片之間的串行連接。SPI接口占用芯片的四根線,節約芯片的I/O引腳,節省PCB的布局空間,具有簡單易用的特性,越來越多的芯片集成了這種通信接口。在具體項目汽車EPB輔助控制器[1]的設計中,應用CAN控制器MCP2515-I/SO的SPI接口,實現了模擬SPI的串口通信。 MCU通過SPI接口對MCP2515-I/SO的時鐘輸入引腳SCK,數據輸出引腳SO,數據輸入引腳SI及片選控制引腳四根線進行數據的控制與傳輸。

1 MCP2515-I/SO芯片介紹

Microchip公司推出的MCP2515-I/SO是一款獨立控制器局域網絡(Controller Area Network, CAN)協議控制器芯片,支持CAN2.0B技術規范并帶有符合工業標準的SPI串行接口,MCP2515-I/SO具備最高40MHz時鐘輸入速度以及一個10MHz高速SPI接口,還可根據前兩個數據字節和11位標識符對報文進行濾波[2]。

MCP2515-I/SO能夠發送和接收標準數據幀以及擴展數據幀,并具有接收過濾和信息管理的功能。MCP2515-I/SO內含三個14 字節的發送緩沖器,2個14字節的接收緩沖器,并且具有靈活的中斷能力、幀屏蔽和過濾、幀優先級設定等特性。MCU可以通過SPI接口來讀取MCP2515-I/SO接收緩沖器里的數據。MCP2515-I/SO對CAN總線的數據發送則沒有限制,只要用MCU通過SPI接口將待發送的數據寫入MCP2515-I/SO的發送緩沖器,然后再調用RTS(發送請求)命令即可將數據發送到CAN總線上。MCU通過使用標準SPI讀寫命令對MCP2515-I/SO寄存器進行讀寫操作。MCP2515-I/SO器件主要由三個部分組成:

1) CAN模塊,包括負責與CAN總線物理接口的CAN協議引擎、發送和接收緩沖器以及它們的驗收濾波寄存器、驗收屏蔽寄存器;

2) 用于配置該器件及其運行的控制邏輯和寄存器,負責實現各種工作模式的設定和操作控制。

3) SPI協議模塊,使用標準的SPI讀/寫指令以及專門的SPI命令來讀/寫所有的寄存器。

2 模擬SPI串口通信的應用

鐘對汽車電子駐車制動的EPB輔助控制器設計可以驅動汽車的EPB系統實現松開、閉合剎車皮的制動操作,系統硬件電路主要包括:MCU、CAN控制器、CAN接收器、按鍵控制、LED指示、PC通信、復位以及電源電路等。由于文章篇幅,僅介紹涉及SPI接口的電路與設計。

2.1 MCP2515-I/SO與MCU連接的硬件電路

系統采用美國ATMEL公司生產的低電壓,高性能CMOS單片機AT89C2051,完全兼容MCS-51指令,具有2K字節FLASH閃速存儲器,128字節內部RAM,6個中斷源,可直接驅動LED[3]。,MCU與CAN控制器MCP2515-IS/O的連接電路如圖1所示。

圖1電路中OFF/ON二個按鈕分別是EPB輔助控制器觸發OFF/ON指令信號的控制開關,也是EPB系統唯一的人機互動界面,指令信號通過汽車內部CAN總線驅動汽車EPB系統執行松開/閉合剎車皮的操作。

LED指示電路選用的紅黃綠三個不同顏色的LED燈對應ON、OFF、SET顯示EPB系統的狀態。MCU輸出高電平驅動LED亮。低電平LED滅。按下ON鍵,發送閉合剎車皮命令,ON燈每秒閃5次,OFF燈滅。按下OFF鍵,發送松開剎車皮命令,OFF燈每秒閃5次,ON燈滅。SET燈具有多種狀態亮燈,分別表示EPB通信故障、沒有故障、發送命令等意義。

2.2 SPI總線模式及軟件模擬

SPI總線模式的數據是以字節為單位進行傳輸的,每字節為位,每個命令或者數據塊都是字節的整數倍。每次傳輸開始于信號的下降沿,結束于其上升沿。傳輸過程中命令和數據由SCK和片選信號控制。

由于AT89C2051單片機沒有SPI接口,與CAN控制器MCP2515-I/SO進行通信時,需要使用軟件來模擬SPI的操作,包括串行時鐘SCK、片選信號、數據輸入SI及數據輸出SO。MCU與SPI接口相連,MCU輸出低電平,使能MCP2515-I/SO。MCU送來的外部數據和命令通過SI引腳傳送到MCP2515-I/SO器件中,且數據在SCK時鐘信號的上升沿傳送進去,在SCK的下降沿通過SO引腳傳送出給MCU。下面是進行一個字節的操作時序與程序。時序圖如圖2所示。

MCU通過SPI向CAN控制器寫入一個字節的子程序如下:

void _MCP2515-I/SO_writebyte(unsigned char SData)

{ // SPI 發送數據, 循環發送8個bit位, 高位在前, 低位在后

unsigned char i, temp_sdata;

CY = 0;

MCP2515-I/SO_SCK = 0;

temp_sdata = SData;

for(i=0; i<8; i++)

{temp_sdata <<= 1;

MCP2515-I/SO_SI = CY;

MCP2515-I/SO_SCK = 1;

MCP2515-I/SO_SCK = 0;

}}

MCU通過SPI從CAN控制器賣取一個字節的子程序如下

unsigned char _MCP2515-I/SO_readbyte(void)

{// SPI 讀取指定地址的數據, 循環接收8個bit位, 高位在前, 低位在后

unsigned char i,temp_rdata=0;

for(i=0; i<8; i++)

{temp_rdata <<= 1;

MCP2515-I/SO_SCK = 1;

if(MCP2515-I/SO_SO)

temp_rdata++;

MCP2515-I/SO_SCK = 0;

}return(temp_rdata);//返回接收到一個字節的數據

}

2.3 通信模塊的軟件設計

SPI接口向CAN控制器發送、讀取數據的通信模塊[4]是系統軟件設計的核心。EPB輔助控制器使用CAN協議進行數據傳輸,當向汽車CAN總線發送OFF/ON指令時,MCU通過SPI接口把OFF/ON指令發送到CAN控制器發送緩沖器,然后能過MCP2515-I/SO的發送命令,由CAN控制器發送到汽車CAN總線上。

SPI接口發送數據到MCP2515-I/SO時,將引腳置為低電平,隨后向MCP2515-I/SO依次發送寫指令、地址碼和至少一個字節的數據。發送一個字節數據的時序如圖3所示,void MCP2515-I/SO_write(unsigned char Addr, unsigned char SData) 是實現該功能的程序代碼。

void MCP2515-I/SO_write(unsigned char Addr, unsigned char SData)// Addr: 寫入地址SData : 寫入數據

{// SPI 向指定地址寫入一個數據, 循環發送8個bit位, 高位在前, 低位在后

MCP2515-I/SO_CS = 0;

_MCP2515-I/SO_writebyte(0x02);//MCP2515-I/SO 命令字0x02 是寫指令字節

_MCP2515-I/SO_writebyte(Addr);//調用單字節寫程序,寫入地址

_MCP2515-I/SO_writebyte(SData);//調用單字節寫程序,寫入數據

MCP2515-I/SO_CS = 1;

}

由于EPB控制器接在汽車CAN總線上,會接收到大量的數據,在所有數據中都包含了自身CAN節點的信息。需要調用寫指令,對MCP2515-I/SO進行設置。幀過濾模塊程的作用是把這些數據中包含的節點信息解析出來,并進行判斷,以確定節點的ID以及所反饋的信息。當CAN控制器從CAN總線上接收到信息時,MCP2515-I/SO內將會對MCU產生一個收到數據的中斷。MCU響應中斷后,將引腳置為低電平,隨后向MCP2515-I/SO依次發送讀指令和8位地址碼。在接收到讀指令和地址碼之后,MCP2515-I/SO會將指定地址寄存器中的數據通過SO引腳移出。讀取一個字節數據的時序如圖4所示,unsigned char MCP2515-I/SO_read(unsigned char Addr) 是實現該功能的程序代碼。

unsigned char MCP2515-I/SO_read(unsigned char Addr)// Addr 指定地址

{ // SPI 讀取指定地址的數據, 循環接收8個bit位, 高位在前, 低位在后

unsigned char temp_rdata;

MCP2515-I/SO_CS = 0;

_MCP2515-I/SO_writebyte(0x03); // MCP2515-I/SO 命令字0x03是讀指令字節_MCP2515-I/SO_writebyte(Addr); //調用單字節寫程序,寫入地址

temp_rdata = _MCP2515-I/SO_readbyte(); //調用單字節讀程序,讀取數據

MCP2515-I/SO_CS = 1;

return(temp_rdata);//返回數據

}

MCP2515-I/SO每一數據字節處理后,器件內部的地址指鐘將自動加一以指向下一個地址。當進行多字節的發送與讀取數據時,通過MCU向MCP2515-I/SO提供持續的時鐘脈沖,可以對下一個連續地址寄存器進行讀、寫操作。通過拉高引腳電平結束連續的讀、寫操作。

3 結束語

文章介紹了帶有SPI接口的CAN控制器芯片MCP2515-I/SO的特性,通過軟件模擬SPI總線接口,實現與MCU之間的數據傳輸,給出C語言編寫的SPI接口的讀寫程序。在實際的汽車BENZ S221的電子駐車制動試驗中,實現了與汽車ECU的通信及松開剎車片、閉合剎車片的判斷與操作。該方法同樣適用于其它的可拓展的SPI芯片、單片機、ARM、微型計算機等。

參考文獻:

[1] 崔玥.基于CAN總線的電子駐車制動系統[D].吉林大學碩士學位論文,2007:12-13.

[2] Microchip Technology lnc.MCP2515-I/SO Datasheets[Z],2005.

[3] 深圳市中源單片機發展有限公司.AT89C2051 Datasheets[Z],2007.

[4] 王亮,杜洪亮,魏衡華.基于多主型SPI接口的CAN總線中繼器設計[J].自動化與儀表,2009(3):20-21.

主站蜘蛛池模板: 欧亚日韩Av| 五月激激激综合网色播免费| 91福利免费视频| 一级毛片基地| 日韩人妻少妇一区二区| 欧美一区中文字幕| 国产手机在线ΑⅤ片无码观看| 麻豆AV网站免费进入| a毛片免费观看| 91国内外精品自在线播放| 91在线日韩在线播放| 三上悠亚在线精品二区| 国产在线精彩视频二区| 四虎精品国产AV二区| 青草视频网站在线观看| 538国产视频| 欧美成人国产| 中文国产成人久久精品小说| 人人澡人人爽欧美一区| 黄色网页在线观看| 国产国语一级毛片| 高清无码不卡视频| 国产丰满成熟女性性满足视频| 亚欧成人无码AV在线播放| 亚洲天堂首页| 丁香婷婷久久| 538精品在线观看| 美女毛片在线| 亚洲精品成人片在线播放| 亚洲欧美成人网| 91久久夜色精品| 亚洲黄色成人| 又粗又硬又大又爽免费视频播放| 亚洲欧美自拍中文| 亚洲综合九九| 秘书高跟黑色丝袜国产91在线 | 美女无遮挡免费网站| 日韩第九页| 国产精品深爱在线| 亚洲欧美日韩成人高清在线一区| 久久男人视频| 这里只有精品国产| 啊嗯不日本网站| 乱码国产乱码精品精在线播放| 亚洲精品成人福利在线电影| 夜夜操国产| 夜色爽爽影院18禁妓女影院| 呦女精品网站| 无码国产伊人| 亚洲无线国产观看| 日本欧美视频在线观看| 欧美中文字幕在线视频 | 国产区免费精品视频| 波多野一区| 久久香蕉国产线看精品| 亚洲综合色吧| 手机精品视频在线观看免费| 日本一区高清| 欧美精品v欧洲精品| 亚洲开心婷婷中文字幕| 日本www在线视频| 亚洲欧美一区二区三区蜜芽| 欧美成人在线免费| 日韩一区精品视频一区二区| 色婷婷国产精品视频| 日韩精品中文字幕一区三区| 久久久久久午夜精品| 亚洲成AV人手机在线观看网站| 无码丝袜人妻| 视频二区亚洲精品| 亚洲欧美日韩天堂| 欧美激情二区三区| 国产最爽的乱婬视频国语对白 | 亚洲精品桃花岛av在线| 国产成人91精品免费网址在线| 女人天堂av免费| 久久永久视频| 99热最新网址| 91精品小视频| 欧美啪啪一区| 欧美一级99在线观看国产| 欧美日韩成人在线观看|