異種單片機(jī)共享片外存儲器及其與微機(jī)通信的方法
TMS320 系列數(shù)據(jù)信號處理單片機(jī)(DSP)在測控、儀器儀表、圖象處理、計算機(jī)視覺與聲信號處理等領(lǐng)域得到了越來越廣泛的應(yīng)用。DSP獲取原始采集數(shù)據(jù)和輸出處理結(jié)果一般有兩種途徑:一是通過串行口,另一是通過數(shù)據(jù)總線讀寫片外存儲器。本文介紹了基于DSP的信號處理目標(biāo)板與基于單片機(jī)AT89C51的多路同步數(shù)據(jù)采集板通過共享片外隨機(jī)存儲器實現(xiàn)板間通信,來獲取原始采集數(shù)據(jù)的方法,并給出了總線隔離硬件電路與軟件控制流程。并介紹了把DSP的處理結(jié)果傳送給基于MCS-51單片機(jī)或基于微機(jī)的控制系統(tǒng)的方法。文中還簡要分析了AT89C51與微機(jī)進(jìn)行串口通信的軟硬件設(shè)計,通過擴(kuò)展AT89C51間接實現(xiàn)了 TMA320C32與單片機(jī)或微機(jī)之間的通信,比直接通過TMS320C32的串口與單片機(jī)或微機(jī)進(jìn)行通信要簡單可靠得多。下面如無特別說明,MCU指 AT89C51,DSP指TMS320C32。
1 板間共享存儲器的硬件接口電路和軟件控制流程
1.1 信號處理板硬件接口電路
基于DSP的信號處理板可以根據(jù)應(yīng)用要求支行許多信號處理算法,如信號預(yù)處理、目標(biāo)識別與跟蹤定位、Kalman濾波等。待處理的原始信號數(shù)據(jù)通過通信從數(shù)據(jù)采集獲得。這里采用板間共享存儲器的方法來完成數(shù)據(jù)交換,DSP既可以從共享存儲器讀取采集數(shù)據(jù),也可以把處理結(jié)果(如新的程控放大倍值,跟蹤定位結(jié)果等)寫到共享存儲器中供MCU讀取。
TMS320C32有一個雙向串行口,可以設(shè)置每幀同時收發(fā)8/16/24/32位數(shù)據(jù),同步時鐘可以由內(nèi)部串口定時器產(chǎn)生或外部輸入。通過設(shè)置串口全局控制寄存器來控制串口的總體功能和工作模式;通過設(shè)置FSX/DX/CLKX端口控制寄存器和FSR/DR/CLKR端口控制寄存器來控制串口6個引腳的功能,可以軟件設(shè)置每個引腳為通用的I/O引腳或串口通信引腳。
TMS320C32有兩根通用的I/O引腳為XFO和CF1,由于共享存儲器接口電路需要4根控制線來進(jìn)行DSP與MCU間的握手通信,這里把串口的2個引腳FSR0和FSX0設(shè)置為通用的I/O引腳用作控制線。接口電路原理圖如圖1所示。
圖中RAM0~RAM3是四片容量為512K的8們高速RAM(芯片型號為CY7C1049-17VC),組成32位數(shù)據(jù)寬度的存儲器,DSP運(yùn)行時的程序和數(shù)據(jù)都在這四片RAM中。FLASH(芯片型號為Am29F016)用于存儲程序和初始化數(shù)據(jù),即使掉電內(nèi)容也不丟失,DSP上電時由自帶的 BOOT LOADER程序從FLASH中取出程序到四片RAM中運(yùn)行。從共享存儲器讀取的采集數(shù)據(jù)也暫存到這四片RAM中。
1.2 數(shù)據(jù)采集板硬件接口電路
基于單片機(jī)AT89C51的數(shù)據(jù)采集板在單片機(jī)的全局控制下,通過對多路聲傳感器輸出的微弱信號進(jìn)行程控放大、低通濾波、同步采樣保持、A/D變換,實時同步采集多路信號,并把采集到的信號數(shù)據(jù)存放在數(shù)據(jù)采集板上的128K共享存儲器(芯片型號為CY7C109-12VC)中。
共享存儲器及其總線隔離電路設(shè)計在數(shù)據(jù)采集板上。在某一時刻,共享存儲器只能被某一方訪問,否則會產(chǎn)生總線沖突。這里由MCU切換選通DSP總線或單片機(jī)總線,分時訪問共享存儲器??偩€隔離芯片選用常見的雙向總線隔離/驅(qū)動芯片74HC245,它有一個輸出使能引腳(E)和一個數(shù)據(jù)傳輸方向(DIR)引腳,MCU通過控制這兩個引腳來完成總線隔離與數(shù)據(jù)傳輸方向控制功能。接口電路原理圖如圖2所示。圖中,MCU端的總線隔離由一片74HC373和兩片74HC245完成,DSP端由三片74HC245完成數(shù)據(jù)總線和地址總線的隔離。由P1.2控制選通哪組總線,當(dāng)P1.2為低電平時,共享存儲器只能被MCU訪問;當(dāng)P1.2為高電平時,只有當(dāng)P1.3也為高電平時(表示MCU同意讓出共享存儲器),共享存儲器才能被DSP訪問。由于DSP需要讀或?qū)懝蚕泶鎯ζ?,所以需要軟件設(shè)置數(shù)據(jù)總線隔離芯片74HC245的數(shù)據(jù)傳輸方向,這里通過設(shè)置 DSPDIR信號線的電平狀態(tài)來完成(高電平時為讀,低電平時為寫)。由于地址總線的數(shù)據(jù)傳輸方向始終是單向的,所以其隔離芯片的DIR端可固定接低電平或高電平,視74HC245的實際接線而定。
評論