單片機共享片外存儲器及其與微機通信的方法
發布時間:2007/4/23 0:00:00 訪問次數:831
1 板間共享存儲器的硬件接口電路和軟件控制流程
1.1 信號處理板硬件接口電路
基于DSP的信號處理板可以根據應用要求運行許多信號處理算法,如信號預處理、目標識別與跟蹤定位、Kalman濾波等。待處理的原始信號數據通過板間通信從數據采集板獲得。這里采用板間共享存儲器的方法來完成數據交換,DSP既可以從共享存儲器讀取采集數據,也可以把處理結果(如新的程控放大倍數值,跟蹤定位結果等)寫到共享存儲器中供MCU讀取。
TMS320C32有一個雙向串行口,可以設置每幀同時收發8/16/24/32位數據,同步時鐘可以由內部串口定時器產生或由外部輸入。通過設置串口全局控制寄存器來控制串口的總體功能和工作模式;通過設置FSX/DX/CLKX端口控制寄存器和FSR/DR/CLKR端口控制寄存器來控制串口6個引腳的功能,可以軟件設置每個引腳為通用的I/O引腳或串口通信引腳。TMS320C32有兩根通用的I/O引腳為XF0和XF1,由于共享存儲器接口電路需要4根控制線來進行DSP與MCU間的握手通信,這里把串口的2個引腳FSR0和FSX0設置為通用的I/O引腳用作控制線。接口電路原理圖如圖1所示。
圖中RAM0~RAM3是四片容量為512K的8位高速RAM(芯片型號為CY7C1049-17VC),組成32位數據寬度的存儲器,DSP運行時的程序和數據都在這四片RAM中。FLASH(芯片型號為Am29F016)用于存儲程序和初始化數據,即使掉電內容也不丟失,DSP上電時由自帶的BOOT LOADER程序從FLASH中取出程序到四片RAM中運行。從共享存儲器讀取的采集數據也暫存到這四片RAM中。
1.2 數據采集板硬件接口電路
基于單片機AT89C51的數據采集板在單片機的全局控制下,通過對多路聲傳感器輸出的微弱信號進行程控放大、低通濾波、同步采樣保持、A/D變換,實時同步采集多路信號,并把采集到的信號數據存放在數據采集板上的128K共享存儲器(芯片型號為CY7C109-12VC)中。
共享存儲器及其總線隔離電路設計在數據采集板上。在某一時刻,共享存儲器只能被某一方訪問,否則會產生總線沖突。這里由MCU切換選通DSP總線或單片機總線,分時訪問共享存儲器。總線隔離芯片選用常見的雙向總線隔離/驅動芯片74HC245,它有一個輸出使能引腳(E)和一個數據傳輸方向(DIR)引腳,MCU通過控制這兩個引腳來完成總線隔離與數據傳輸方向控制功能。接口電路原理圖如圖2所示。圖中,MCU端的總線隔離由一片74HC373和兩片74HC245完成,DSP端由三片74HC245完成數據總線和地址總線的隔離。由P1.2控制選通哪組總線,當P1.2為低電平時,共享存儲器只能被MCU訪問;當P1.2為高電平時,只有當P1.3也為高電平時(表示MCU同意讓出共享存儲器),共享存儲器才能被DSP訪問。由于DSP需要讀或寫共享存儲器,所以需要軟件設置數據總線隔離芯片74HC245的數據傳輸方向,這里通過設置DSPDIR信號線的電平狀態來完成(高電平時為讀,低電平時為寫)。由于地址總線的數據傳輸方向始終是單向的,所以其隔離芯片的DIR端可以固定接低電平或高電平,視74HC245的實際接線而定。
1.3 軟件控制流程
信號處理板上的DSP需要采集信號數據時就向數據采集板上的MCU發出請求信號,單片機接收到請求信號后,如果同意讓出共享存儲器,則向DSP發出應答信號,同時隔離MCU端的總線,暫停數據采集。DSP接收到應答信號后就可以訪問共享存儲器,DSP快速讀、寫完數據后,向單片機發結束信號,單片機接收到結束信號后,收回共享存儲器,同時隔離DSP端總線,繼續采集。這樣數據采集與信號處理就可以同時進行,不同于一般的采集一段處理一段的串行工作模式,實現了數據采集零等待,增加了系統的吞吐能力。參見圖3的接線圖,一次完整的通信過程詳述如下,注意在DSP程序初始化時應把XF0、XF1、FSR0設置為相應的無效狀態。
1DSP需要采集信號數據時向MCU發請求信號(置XF0為低電平),觸發MCU的INT0中斷,等待MCU應答(DSP循環檢測XF1的狀態)。
2如果MCU同意讓出共享存儲器,則響應中斷,否則等待。在中斷服務程序中,置P1.3(即DSPACK)為高電平,表示應答。同時置P1.2為高電平,選通DSP總線。MCU接著循環檢測P1.4即DSPEOR)的狀態。
3DSP收到應答信號(即檢測到XF1為高電平),立即快速讀寫共享存儲器,在讀操作前,置FSX0為高電平,在寫操作前,置FSX0為低電平。讀寫完
1 板間共享存儲器的硬件接口電路和軟件控制流程
1.1 信號處理板硬件接口電路
基于DSP的信號處理板可以根據應用要求運行許多信號處理算法,如信號預處理、目標識別與跟蹤定位、Kalman濾波等。待處理的原始信號數據通過板間通信從數據采集板獲得。這里采用板間共享存儲器的方法來完成數據交換,DSP既可以從共享存儲器讀取采集數據,也可以把處理結果(如新的程控放大倍數值,跟蹤定位結果等)寫到共享存儲器中供MCU讀取。
TMS320C32有一個雙向串行口,可以設置每幀同時收發8/16/24/32位數據,同步時鐘可以由內部串口定時器產生或由外部輸入。通過設置串口全局控制寄存器來控制串口的總體功能和工作模式;通過設置FSX/DX/CLKX端口控制寄存器和FSR/DR/CLKR端口控制寄存器來控制串口6個引腳的功能,可以軟件設置每個引腳為通用的I/O引腳或串口通信引腳。TMS320C32有兩根通用的I/O引腳為XF0和XF1,由于共享存儲器接口電路需要4根控制線來進行DSP與MCU間的握手通信,這里把串口的2個引腳FSR0和FSX0設置為通用的I/O引腳用作控制線。接口電路原理圖如圖1所示。
圖中RAM0~RAM3是四片容量為512K的8位高速RAM(芯片型號為CY7C1049-17VC),組成32位數據寬度的存儲器,DSP運行時的程序和數據都在這四片RAM中。FLASH(芯片型號為Am29F016)用于存儲程序和初始化數據,即使掉電內容也不丟失,DSP上電時由自帶的BOOT LOADER程序從FLASH中取出程序到四片RAM中運行。從共享存儲器讀取的采集數據也暫存到這四片RAM中。
1.2 數據采集板硬件接口電路
基于單片機AT89C51的數據采集板在單片機的全局控制下,通過對多路聲傳感器輸出的微弱信號進行程控放大、低通濾波、同步采樣保持、A/D變換,實時同步采集多路信號,并把采集到的信號數據存放在數據采集板上的128K共享存儲器(芯片型號為CY7C109-12VC)中。
共享存儲器及其總線隔離電路設計在數據采集板上。在某一時刻,共享存儲器只能被某一方訪問,否則會產生總線沖突。這里由MCU切換選通DSP總線或單片機總線,分時訪問共享存儲器。總線隔離芯片選用常見的雙向總線隔離/驅動芯片74HC245,它有一個輸出使能引腳(E)和一個數據傳輸方向(DIR)引腳,MCU通過控制這兩個引腳來完成總線隔離與數據傳輸方向控制功能。接口電路原理圖如圖2所示。圖中,MCU端的總線隔離由一片74HC373和兩片74HC245完成,DSP端由三片74HC245完成數據總線和地址總線的隔離。由P1.2控制選通哪組總線,當P1.2為低電平時,共享存儲器只能被MCU訪問;當P1.2為高電平時,只有當P1.3也為高電平時(表示MCU同意讓出共享存儲器),共享存儲器才能被DSP訪問。由于DSP需要讀或寫共享存儲器,所以需要軟件設置數據總線隔離芯片74HC245的數據傳輸方向,這里通過設置DSPDIR信號線的電平狀態來完成(高電平時為讀,低電平時為寫)。由于地址總線的數據傳輸方向始終是單向的,所以其隔離芯片的DIR端可以固定接低電平或高電平,視74HC245的實際接線而定。
1.3 軟件控制流程
信號處理板上的DSP需要采集信號數據時就向數據采集板上的MCU發出請求信號,單片機接收到請求信號后,如果同意讓出共享存儲器,則向DSP發出應答信號,同時隔離MCU端的總線,暫停數據采集。DSP接收到應答信號后就可以訪問共享存儲器,DSP快速讀、寫完數據后,向單片機發結束信號,單片機接收到結束信號后,收回共享存儲器,同時隔離DSP端總線,繼續采集。這樣數據采集與信號處理就可以同時進行,不同于一般的采集一段處理一段的串行工作模式,實現了數據采集零等待,增加了系統的吞吐能力。參見圖3的接線圖,一次完整的通信過程詳述如下,注意在DSP程序初始化時應把XF0、XF1、FSR0設置為相應的無效狀態。
1DSP需要采集信號數據時向MCU發請求信號(置XF0為低電平),觸發MCU的INT0中斷,等待MCU應答(DSP循環檢測XF1的狀態)。
2如果MCU同意讓出共享存儲器,則響應中斷,否則等待。在中斷服務程序中,置P1.3(即DSPACK)為高電平,表示應答。同時置P1.2為高電平,選通DSP總線。MCU接著循環檢測P1.4即DSPEOR)的狀態。
3DSP收到應答信號(即檢測到XF1為高電平),立即快速讀寫共享存儲器,在讀操作前,置FSX0為高電平,在寫操作前,置FSX0為低電平。讀寫完
上一篇:基于DSP的紙幣號碼識別系統