<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è) > EDA/PCB > 設計應用 > 用CPLD實(shí)現DSP2407A與S3C4480的通信

用CPLD實(shí)現DSP2407A與S3C4480的通信

作者: 時(shí)間:2007-07-10 來(lái)源:網(wǎng)絡(luò ) 收藏
在現代汽車(chē)電子中,一般有多個(gè)微控制器共同協(xié)調工作。DSP控制器采用哈佛結構,運算速度快,所以在汽車(chē)電子中廣泛采用DSP芯片來(lái)實(shí)現汽車(chē)動(dòng)力系統的控制。ARM是一種32位微控制器,有豐富的外擴接口,因此在汽車(chē)電子中一般用ARM來(lái)實(shí)現大容最的數據存儲和人機交互或GPS全球定位系統,故在DSP和ARM之間需要進(jìn)行數據交換。

(Complex Programmable Logic Device)是一種復雜的用戶(hù)可編程邏輯器件,由于采用硬件可編程技術(shù),從而使沒(méi)計硬件電路也像設計軟件一樣方便。DSPA是T1公司設計的一款專(zhuān)為滿(mǎn)足大范圍的數字電動(dòng)機控制應用的微控制器。是三星公司專(zhuān)為手持設備設計的高性?xún)r(jià)比的微榨制器。本設計以Xilinx公司的XC95108為例,通過(guò)在中開(kāi)辟2塊獨立的SRAM區域(各1字節)來(lái)實(shí)現DSPA的并行通信。采用這種通信方式,數據傳輸準確、高速,基本可以滿(mǎn)足DSPA總線(xiàn)接口實(shí)時(shí)通信的要求,從而將整車(chē)動(dòng)力控制和人機交互有機地統一起來(lái)。

1 整體系統結構設計
DSP2407A負責采集汽車(chē)所有的數據,再將數據通過(guò)發(fā)給S3C44B0進(jìn)行數據存儲和人機交互。有時(shí)S3C4480要接收觸摸屏命令,命令也通過(guò)CPLD發(fā)給DSP2407A控制器,從而控制整臺汽車(chē)的動(dòng)作。對DSP2407A,要及時(shí)響應由S3C44B0發(fā)過(guò)來(lái)的命令;而對于S3C4480,要隨時(shí)接收DSP2407A送來(lái)的數據,這樣,雙方通信的實(shí)時(shí)性就要很強。因此在系統設計中,DSP2407A用中斷方式接收數據,S3C44BO用查詢(xún)方式接收數據。

在DSP2407A中,[DO~D7]是數據線(xiàn),[A15~A12]是地址線(xiàn),IS是I/0空間選通引腳,當訪(fǎng)問(wèn)外部的存儲器或I/O空間時(shí)為低電平。WE是寫(xiě)使能,RD是讀使能。IOPC7足通用I/O引腳,用來(lái)判斷DSP2407A是否可以往CPLD寫(xiě)數據。當IOPC7為低電平時(shí),代表DSP2407A可以往CPLD中寫(xiě)數據;若為高電平,則表示CPLD中已有數據,這時(shí)DSP2407A不能往CPLD中寫(xiě)數據。XINT1是外部中斷,用來(lái)通知DSP2407A準備讀取CPLD中的數據。

在CPLD中,用l片XC95l08來(lái)實(shí)現。XC95108共有108個(gè)宏單元,有足夠的空間來(lái)實(shí)現2個(gè)8位的SRAM區;主要用來(lái)實(shí)現DSP2407A和S3C44B0之間的數據交換,沒(méi)置DSP2407A和S3C44B0讀/寫(xiě)控制的狀態(tài)位。在S3C44B0中’[D0~D7]是數據線(xiàn),nGCSl是芯片選擇信號,當存儲器地址在相應段的地址區域時(shí)芯片被激活。nWE是寫(xiě)允許信號,nOE是讀允許信號。IOPF0是通用I/O口,用來(lái)監視可否從CPLD中讀取數據:當它為高電平時(shí),代表CPLD中有數據,可以讀取數據;當它為低電平時(shí)。表示CPLD中無(wú)數據可讀取。IOPF1是通用I/O口,用來(lái)監視可否向CPLD中寫(xiě)數據:當它為高電平時(shí),代表CPLD中無(wú)數據,可以向CPLD中寫(xiě)數據;當它為低電平時(shí),代表CPLD中已有數據,S3C44B0不能向CPLD中寫(xiě)數據。系統結構如圖1所示。

2 CPLD的設計
采用Xilinx ISE8.1為設計工具,用國際上通用的VHDL語(yǔ)言來(lái)編寫(xiě)源程序。

2.1 8位數據從DSP中傳送到ARM中

當[A15~A12]是1100時(shí),DSP2407A開(kāi)始向CPLD中寫(xiě)數據,并置dspsign_write和armsign_read為1;表示CPLD中已經(jīng)有數據了,通知S3C4480可以讀取數據和DSP2407A暫時(shí)不能向CPLD中寫(xiě)數據;同時(shí)將數據寫(xiě)入鎖存器sraml中。

當ARM發(fā)出讀取數據信號,開(kāi)始將數據從sraml中讀出,并且置dspsign_write和armsign_read為0時(shí),表示CPLD中沒(méi)有數據了,DSP2407A可以向CPLD中重新寫(xiě)數據。



2.2 8位數據從83CA480中傳送到DSP2407A中
當S3C4480向CPLD寫(xiě)數據時(shí),將數據寫(xiě)入到鎖存器sram2中,同時(shí)置dsp_int為0,通知DSP2407A產(chǎn)生一個(gè)外部中斷,可以從CPLD中取數據;置armsign_write為0,表示CPLD中已有數據,S3C4480不能再向CPLD中寫(xiě)數據。

當[A15~12]是1101時(shí),DSP2407A向CPLD中發(fā)出一個(gè)讀取信號,數據從鎖存器sram2傳送給DSP2407A中,并且置dsp_int為1,armsign_write為l,表示數據已被DSP2407A讀走,S3C4480可以繼續向CPLD中寫(xiě)數據。


3 S3C4480和DSP2407A通信軟件設計
在本程序中,DSP2407A采用中斷方式接收數據,S3C4480采用查詢(xún)端口方式接收數據。
(1)DSP2407A程序

(2)S3C44B0程序



關(guān)鍵詞: S3C4480 2407A CPLD 2407

評論


相關(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>