<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種通用基于CPLD實(shí)現的CAN接口連接設計

一種通用基于CPLD實(shí)現的CAN接口連接設計

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

摘要:介紹一種基于實(shí)現的處理器與CAN總線(xiàn)控制器SJA1000接口連接設計。通常處理器都有獨立的地址和數據總線(xiàn),而SJA1000采用的是地址、數據分時(shí)復用總線(xiàn),它們不能直接連接。該設計主要是通過(guò)實(shí)現這兩種總線(xiàn)方式的轉接。該方案成本低,性能穩定,實(shí)現可靠。采用使該設計更為自由、靈活。在處理器與CPLD的連接一側是采用用獨立的地址和數據總線(xiàn)訪(fǎng)問(wèn)外部存儲器的方式工作的,而許多具有獨立的地址和數據總線(xiàn)的都能做到訪(fǎng)問(wèn)外部存儲器,從而使該設計具有很強的通用性。全篇給出了完整詳細的設計代碼和仿真結果,并在實(shí)際應用中得到檢驗,可直接應用到設計中。

本文引用地址:http://dyxdggzs.com/article/201609/304285.htm

在工業(yè)自動(dòng)化領(lǐng)域,CAN口通信以其卓越的性能、極高的可靠性和低廉的價(jià)格得到廣范的應用。Philips公司的SJA1000芯片,是目前使用最為廣泛的一種獨立CAN總線(xiàn)控制器。SJA1000有一系列先進(jìn)的功能,適合于多種應用,特別在系統優(yōu)化,診斷和維護方面非常重要。

為了連接到主控制器,SJA1000提供一個(gè)分時(shí)復用的地址、數據總線(xiàn)和附加的讀寫(xiě)控制信號。SJA1000可以作為主控制器外圍存儲器映射的I/O器件直接連接到具有Intel方式接口的主控制器。而目前大部分處理器都是采用獨立的地址和數據總線(xiàn)訪(fǎng)問(wèn)外部存儲器的,由于時(shí)序不相兼容的原因,這些處理器不能直接訪(fǎng)問(wèn)SJA1000。從而設計一種轉接電路使DSP和ARM處理器能夠連接SJA1000變得很必要。本設計正是解決這一問(wèn)題。

1 總體設計

該設計以新塘科技生產(chǎn)的ARM7處理器W90P710B與SJA1000的連接為例,W90P710B采用獨立的地址和數據總線(xiàn)訪(fǎng)問(wèn)外部存儲器方式工作。圖1表明了CPLD在W90P710B與SJA1000之間的這種轉接關(guān)系。

設計中采用的CPLD選用Altera公司的MAX系列可編程邏輯器件EPM3128A芯片。EPM3128A具有128個(gè)宏單元,96用戶(hù)I/O管腳數,2500個(gè)可用門(mén),管腳間延遲快至10ns,計數器速度可高達100 MHz,可以很好的滿(mǎn)足設計需要。本設計采用圖形和AHDL語(yǔ)言混合輸入完成。使用工具為MaxplusⅡ。Ateral公司的MaxplusⅡ,QuartusⅡ,也是業(yè)界最著(zhù)名的CP LD/FPGA開(kāi)發(fā)工具,支持所有的Ateral芯片,如MAX3000,MAX7000,MAX2Ⅱ系列。

一種通用基于CPLD實(shí)現的CAN接口連接設計

圖2是轉接電路總體設計圖,與ARM處理器連接一側,鎖存器U1用于存儲要訪(fǎng)問(wèn)的地址,U1的片選信號為CANAW,該信號同時(shí)起到啟動(dòng)時(shí)序電路U8輸出讀寫(xiě)時(shí)序的作用;鎖存器U2用于存儲要寫(xiě)入的數據,U2的片選是CANDW;鎖存器U7的輸出為高,控制U8輸出讀時(shí)序對讀取數據,讀出的數據存入U5中,鎖存器U7的輸出為低,控制U8輸出寫(xiě)時(shí)序對CAN控制器SJA1000進(jìn)行寫(xiě)操作,將U2中的數據寫(xiě)入U1所代表的,CAN所在地址中,其片選信號為CANCTL;門(mén)電路U6通過(guò)片選信號CANDR用以讀取U5中存放的CAN讀出數據。綜上所知,CPLD與ARM處理器接口的是4個(gè)寄存器,它們分別是3個(gè)寫(xiě)寄存器:CAN地址寫(xiě)寄存器CANAW,CAN數據寫(xiě)寄存器CANDW,CAN控制寄存器CANCTL;一個(gè)讀寄存器:CAN數據讀CANDR。ARM就是通過(guò)這4個(gè)寄存器來(lái)操作SJA1000 CAN控制器的。

CPLD與SJA1000連接一側是INTEL方式的標準信號CANCS、CANRD、CANWR、CANALE,這4個(gè)信號由時(shí)序電路U8產(chǎn)生。U3、U4的輸出,U5的輸入都與SJA1000的數據總線(xiàn)相連,用以接收地址和讀寫(xiě)數據。

復位信號RESET使系統上電時(shí)處于初始狀態(tài)。時(shí)鐘信號GCLK取8 MHz,由SJA1000的16 MHz時(shí)種2分頻得來(lái)。U9-U12用以延寬CANAW對U8的低電平啟動(dòng)脈沖,使U8工作的更可靠。整個(gè)設計占用ARM4個(gè)地址和一個(gè)中斷資源,只要有足夠的地址和中斷源ARM就可按此設計擴充出多個(gè)CAN口。

2 時(shí)序電路設計

CAN讀寫(xiě)時(shí)序電路U8的設計輸入采用AHDL語(yǔ)言,其電路符號如圖3所示。

一種通用基于CPLD實(shí)現的CAN接口連接設計

U8的設計代碼如下:

一種通用基于CPLD實(shí)現的CAN接口連接設計
一種通用基于CPLD實(shí)現的CAN接口連接設計
一種通用基于CPLD實(shí)現的CAN接口連接設計

其波形仿真結果如圖4所示。

一種通用基于CPLD實(shí)現的CAN接口連接設計

3 轉接電路工作原理介紹

CAN讀寫(xiě)時(shí)序電路U8是整個(gè)設計的核心,它起到對SJA1000進(jìn)行讀寫(xiě)操作的作用。

當ARM處理器要對SJA1000進(jìn)行讀操作時(shí),它先通過(guò)CANCTL片選在U7中寫(xiě)入‘1’高電平,使U8工作在讀的狀態(tài),然后把要讀的地址通過(guò)片選CANAW寫(xiě)入U1,片選CANAW還啟動(dòng)了U8的TG觸發(fā)信號(圖4的前半部分、CANE為低與CANR/W為高的那部分),使U8的CANE(即CANCS)輸出低電平,CANCS0輸出低脈沖打開(kāi)門(mén)電路U3,使CAN地址出現在SJA1000的總線(xiàn)上,同時(shí)CANALE出現一個(gè)正脈沖,將該地址鎖存到SJA1000的地址寄存器中,隨后CANCSR(即CANRD)輸出低電平對SJA1000進(jìn)行讀數據,在CANCSR低電平脈沖結束的上升沿處出現SJA1000總線(xiàn)上的數據被鎖存到U5寄存器中,然后CANE變高,讀時(shí)序完成。隨后ARM處理器通過(guò)CANDR片選打開(kāi)門(mén)U6將數據讀走。

當ARM處理器要對SJA1000進(jìn)行寫(xiě)操作時(shí),它先通過(guò)CANCTL片選在U7中寫(xiě)入‘0’低電平,使U8工作在寫(xiě)的狀態(tài),然后再把要寫(xiě)的數據通過(guò)片選CANDW寫(xiě)入U2,最后把要寫(xiě)的地址通過(guò)片選CANAW寫(xiě)入U1,片選CANAW還啟動(dòng)了U8的TG觸發(fā)信號(圖4的后半部分、CANE與CANR/W同時(shí)為低的那部分),使U8的CANE(即CANCS)輸出低電平,CANCS0輸出低脈沖打開(kāi)門(mén)電路U3,使CAN地址出現在SJA1000的總線(xiàn)上,同時(shí)CANALE出現一個(gè)正脈沖,將該地址鎖存到SJA1000的地址寄存器中,隨后CANCS1輸出低脈沖打開(kāi)門(mén)電路U4,使CAN要寫(xiě)入的數據出現在SJA1000的總線(xiàn)上,同時(shí)CANCSW(即CANWR)輸出低電平對SJA1000進(jìn)行數據寫(xiě)入,然后CANE變高,寫(xiě)時(shí)序完成。


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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>