《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 用CPLD實現DSP2407A與S3C4480的通信
用CPLD實現DSP2407A與S3C4480的通信
單片機及嵌入式系統應用
謝曉輝 吳森
摘要: 在現代汽車電子中,一般有多個微控制器共同協調工作。DSP控制器采用哈佛結構,運算速度快,所以在汽車電子中廣泛采用DSP芯片來實現汽車動力系統的控制。ARM是一種32位微控制器,有豐富的外擴接口,因此在汽車電子中一般用ARM來實現大容最的數據存儲和人機交互或GPS全球定位系統,故在DSP和ARM之間需要進行數據交換。
關鍵詞: CPLD DSP2407A S3C4480
Abstract:
Key words :

在現代汽車電子中,一般有多個微控制器共同協調工作。DSP控制器采用哈佛結構,運算速度快,所以在汽車電子中廣泛采用DSP芯片來實現汽車動力系統的控制。ARM是一種32位微控制器,有豐富的外擴接口,因此在汽車電子中一般用ARM來實現大容最的數據存儲和人機交互或GPS全球定位系統,故在DSP和ARM之間需要進行數據交換。

CPLD(Complex Programmable Logic Device)是一種復雜的用戶可編程邏輯器件,由于采用硬件可編程技術,從而使沒計硬件電路也像設計軟件一樣方便。DSP2407A是T1公司設計的一款專為滿足大范圍的數字電動機控制應用的微控制器。S3C4480是三星公司專為手持設備設計的高性價比的微控制器。本設計以Xilinx公司的XC95108為例,通過在CPLD中開辟2塊獨立的SRAM區域(各1字節)來實現DSP2407A與S3C4480的并行通信。采用這種通信方式,數據傳輸準確、高速,基本可以滿足DSP2407A與S3C4480總線接口實時通信的要求,從而將整車動力控制和人機交互有機地統一起來。

1 整體系統結構設計

DSP2407A負責采集汽車所有的數據,再將數據通過CPLD發給S3C44B0進行數據存儲和人機交互。有時S3C4480要接收觸摸屏命令,命令也通過CPLD發給DSP2407A控制器,從而控制整臺汽車的動作。對DSP2407A,要及時響應由S3C44B0發過來的命令;而對于S3C4480,要隨時接收DSP2407A送來的數據,這樣,雙方通信的實時性就要很強。因此在系統設計中,DSP2407A用中斷方式接收數據,S3C44BO用查詢方式接收數據。

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

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

2 CPLD的設計

采用Xilinx ISE8.1為設計工具,用國際上通用的VHDL語言來編寫源程序。

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


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

當ARM發出讀取數據信號,開始將數據從sraml中讀出,并且置dspsign_write和armsign_read為0時,表示CPLD中沒有數據了,DSP2407A可以向CPLD中重新寫數據。



2.2 8位數據從83CA480中傳送到DSP2407A中

當S3C4480向CPLD寫數據時,將數據寫入到鎖存器sram2中,同時置dsp_int為0,通知DSP2407A產生一個外部中斷,可以從CPLD中取數據;置armsign_write為0,表示CPLD中已有數據,S3C4480不能再向CPLD中寫數據。

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


3 S3C4480和DSP2407A通信軟件設計

在本程序中,DSP2407A采用中斷方式接收數據,S3C4480采用查詢端口方式接收數據。

(1)DSP2407A程序

(2)S3C44B0程序

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久精品亚洲日本波多野结衣| 啊灬啊灬别停啊灬用力| 亚洲精品tv久久久久久久久久| 黄又色又污又爽又高潮动态图| 少妇被躁爽到高潮无码文| 乡村乱妇一级毛片| 渣男渣女抹胸渣男渣女| 国产中文在线视频| 10天的爱人下载| 好爽好多水小荡货护士视频 | 18禁止看的免费污网站| 宝宝你里面好烫很软不想出来| 久久精品国产久精国产一老狼 | 国产成人无码精品一区在线观看| AV天堂午夜精品一区| 手机看片国产福利| 久久精品欧美日韩精品| 欧美日韩精品一区二区三区高清视频| 国产欧美在线观看| av无码aV天天aV天天爽| 无码不卡av东京热毛片| 么公的好大好深视频好爽想要| 欧美特黄一免在线观看| 免费播看30分钟大片| 色综合久久久久综合体桃花网| 国产极品视觉盛宴| 69老湿机体验区手机| 夫妇交换性3中文字幕k8| 亚洲三级在线播放| 激情内射日本一区二区三区| 噜噜噜私人影院| 香港aa三级久久三级老师| 天天躁日日躁狠狠躁综合| 久久99精品久久久久久hb无码| 极品一线天馒头lj| 亚洲欧美另类精品久久久| 超级香蕉97在线观看视频| 天堂网www在线资源| 久久精品国内一区二区三区| 欧美日韩精品久久久免费观看 | 性做久久久久免费看|