娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月21日(星期一)

2021年04月21日 | MCU與DSP的SPI通信設計

發布者:電子思維 來源: eefocus關鍵字:MCU  DSP  SPI通信 手機看文章 掃描二維碼
隨時隨地手機看文章

引言


現今的工控系統中,為了提高系統的實時性和適用性,一般采用DSP來完成核心算法與控制,而使用MCU來實現人機對話,以實現實時控制功能。這樣,DSP和MCU需要一種高效的數據總線來完成它們之間的大量數據傳送。SPI總線由于占用的接口線少,通信效率高,并且大部分處理器芯片都支持,因而是一種理想的設計方案。


針對交流伺服系統實際使用的要求,采用TI公司的高性能DSP控制器TMS320LF2407A(簡稱“2407A”)作為控制核心;選用TI公司生產的MSP430系列單片機中的MSP430F149作為人機界面的控制芯片,來實現按鍵和數據采集以及顯示的功能;采用SPI串口通信實現單片機與DSP之間的數據傳輸。


1系統硬件的構成


1.1MSP430


MSP430系列單片機是TI公司近幾年開發的新一代單片機。該單片機在設計上打破常規采用了全新的概念,其突出的優點是低電源電壓、超低功耗、多種功能。由于其功能遠遠超過其他系列單片機的功能,因而又稱為“混合型單片機”。MSP430具有非常高的集成度,單片集成了多通道的12位A/D轉換、片內精密比較器、多個具有PWM功能的定時器、片內USART、看門狗定時器、片內數控振蕩器、大量的I/O端口以及大容量的片內存儲器。同時,MSP430F149是Flash存儲器型單片機,具有良好的仿真開發技術,設置有JTAG仿真接口和高級語言編譯器。在系統支持軟件下,在線實現對目標系統的硬件調試及軟件開發,包括匯編語言、C語言、連接及動態調試,具有單步、多斷點和跟蹤,并且開放全部存儲器、寄存器,可以方便、可靠地對系統進行軟硬件開發[12]。


基于以上特點,該系列單片機在便攜式儀表、智能傳感器、實用檢測儀器、電機控制、家庭自動化等領域的應用較為普遍。


1.2TMS320LF2407A


2407A是TI公司為滿足工業控制應用,尤其是電機控制而設計的。把一個高性能的 DSP核和許多外圍設備集成到單片內。2407A的40 MIPS的處理速度可以滿足快速地處理大量數據和算法的需要。


2407A具有豐富的外設模塊: 3K字的Flash程序存儲器、1.5K字的數據/程序RAM、544字雙口RAM(DARAM)和2K字的單口RAM(SARAM)、2個事件管理器EVA和EVB、16通道輸入的A/D轉換器,具有看門狗定時器模塊(WDT)、串行通信接口(SCI)、16位的串行外設接口模塊(SPI)、控制器局域網絡(CAN)2.0B模塊、基于鎖相環的時鐘發生器、高達40個可單獨編程或復用的通用輸入/輸出引腳、5個外部中斷。由此可以看出,2407A確實有著很強的實時處理能力,不失為高性能伺服驅動控制的理想器件之一[3]。


1.3硬件接口設計與SPI通信的實現


SPI通信設備在硬件連接上只需要將主機的發送與從機的接收相連,將主機的接收與從機的發送相連,將主機產生的時鐘信號輸出至從機的時鐘引腳上。單片機與外設的硬件連接如圖1所示。



圖1MSP430F149與DSP的接口連接電路


單片機MSP430F149作為串行通信的主機, DSP 2407A則作為從機(slave)。其中,SPICLK為SPI時鐘引腳, SPISIMO為SPI從動輸入/主動輸出,SPISOMI為從動輸出/主動輸入,SPISTE為從動發送使能。


從圖1可以看出,SPI通過一根時鐘引線將主機和從機同步,因此,它的串行數據交換不需要增加起始位、停止位等用于同步的格式位,直接將要傳送的數據寫入主機的SPI發送數據寄存器。這個寫入過程自動啟動主機的發送過程,即在同步時鐘SPICLK的節拍下把SPITXBUF的內容一位一位地移到引腳SPISIMO;對于從機,同樣在SPICLK的節拍下將出現在引腳SPISIMO上的數據一位一位地移到從機的移位寄存器,當接收完一個完整的數據塊后,設置中斷標志通知從機這個數據塊已接收完畢,并同時將移位寄存器接收到的內容復制到從機的SPI接收數據寄存器SPIRXBUF。可以看出,用戶編程只需在發送數據時寫數據到SPI發送數據寄存器,在接收數據時讀SPI接收數據寄存器,其余的工作都由SPI模塊自動完成[4]。


2軟件設計


MSP430F149和DSP都允許用戶用C語言和匯編語言進行編程。系統中DSP對電機實現實時控制,對運行速度要求嚴格,所以程序采用匯編語言實現。MSP430實現按鍵顯示、數據管理和指令傳輸等功能,對運行速度要求不高,所以采用C語言實現。


軟件設計的主要任務是:初始化相應的寄存器;單片機在相應的界面發送數據;DSP及時接收到達串口的數據,識別并保存數據。


2.1通信協議的設置


兩個設備之間要實現相互通信,首先必須規定用以傳輸數據的協議。一般來說,主機發送命令和配置信息給從機,而從機則向主機發送反饋信息。系統主要實現的是單片機向DSP發送數據信息,單片機首先發送指令數據表示主機發送數據的過程開始。如果發送的是0,則標志著該過程的開始。為了避免誤操作指令數據發送兩次,DSP接收的兩個數據都是0時進行相應的操作,否則重新傳輸指令數據。然后把單片機需要傳輸的數據存放在一個數組里面依次傳送,比如要傳輸3個數據,則定義數組a[0]和a[1]存放指令數據,a[2]到a[4]存放需要傳送的數組。


2.2串行口的初始化


單片機的SPI初始化包括:把相應的I/O口配置成具有SPI特殊功能的接口,時鐘模式的選定,波特率的選擇,發送接收數據長度的選擇,內部相對應的時鐘使能。所有設置都是通過設計相對應的SPI控制寄存器實現的[5]。


初始化程序如下:


WDTCTL=WDTPW+WDTHOLD;//關閉看門狗


BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on


BCSCTL2 = SELM1 + SELS;//選擇高速晶體振蕩器作為時鐘源


UCTL1=CHAR + SYNC + MM + SWRST;//SPIZ主模式8位數據,單片機作為主動模式


UTCTL1=STC+SSEL1+CKPL ;//數據在下降沿輸出,系統主時鐘,三線模式


UBR01=0x02;


UBR11=0x00;//波特率設為fclk/2


UMCTL1=0x00;


ME2=USPIE1;//模塊使能2


P5SEL|=0x0F;//低4位為模塊端口功能


P5OUT|=0xf0;


UCTL1&= ~SWRST;//復位結束


2407A的SPI初始化與單片機的初始化相類似,但是DSP作為從器件,所以其波特率由主器件決定不需要再進行設計。


2.3MSP430發送數據


系統具有薄膜按鍵和液晶顯示,可以方便地在需要的時候發送數據。比如,在設計完參數后就會出現一個選擇界面,讓操作者選擇是進行參數保存、參數備份還是傳遞參數給DSP,操作者可以根據自己不同的需要選擇相應的功能。如果選擇參數傳遞功能,則單片機會跳到相應的程序段執行參數傳遞的任務。發送數據程序如下:


P5OUT &= 0x1f;//片選DSP芯片


while((U1IFG & UTXIFG1) != UTXIFG1);


for(k=0;k<6;k++) {//傳輸的數據個數


P5OUT &= 0x1f;


while((U1IFG & UTXIFG1) != UTXIFG1);


TXBUF1=a[k];//發送數據


while((UTCTL1&0x01)==0);//發送完成


delay(10);


P5OUT &= 0x2f;


}


2.4DSP接收數據


DSP接收單片機發送過來的數據是通過中斷方式實現的,每傳輸一個數據就發生一次中斷。主程序完成對DSP的初始化后進入等待狀態,一旦接收到單片機的中斷信號,DSP就進入中斷服務子程序,將接收到的數據存放在70H開始的存儲單元中。當所有數據傳輸完成后,將這些數據賦給相應的變量。這里要注意的是,DSP的SPIRXBUF是16位,而單片機發送的數據是8位,所以在DSP接收到數據以后需要做處理,把高8位屏蔽掉。可以通過與00FF相與來達到這個目的。中斷程序流程如圖2所示。



圖2DSP中斷程序流程


中斷程序如下:


LDP#6


LACCK;K=K+1


ADD#1


SACLK


MAR*,AR2;AR2為存儲單元地址指針


LDP#DP_PF1


LACCSPIRXBUF


AND#00FFH;高位屏蔽掉


SACL*+


LDP#6


LACCK


SUB#1;判斷是否為指令數據


BCNDL1,NEQ


LDP#0


LACC#70H


SUB#0


BCNDL3,NEQ;不是0則跳到L3


BL2;是0則跳到L2


L1: …;判斷是否是第2個數據


L4: LACCK;判斷數據是否傳送完畢


SUB#05H


BCNDL5,EQ


BL2


L5:LDP#0;數據全部發送完畢


LACC72H


LDP#6


SACLSPEED;賦值給相應變量


……


L3: SPLKK,0;K=0


LDP#0


LARAR2,#70H;地址指針指回70H


L2: CLRCINTM;開中斷


RET


3結論


實驗證明,應用SPI通信進行MSP430單片機與DSP之間的串口通信完全滿足伺服系統實時性的要求。同時,由于SPI接口功能比較完善,通信協議清晰,時序簡單,無須外加其他元器件即可方便地實現DSP與主機之間數據的串行通信,簡化了系統設計,增強系統的實時處理能力和應用范圍。結構靈活性強,便于擴展,同時減輕了主CPU負擔,提高了系統的可靠性。


參考文獻


[1] 胡大可.MSP430系列超低功耗16位單片機原理與應用[M].北京:北京航空航天大學出版社,2000.


[2] Texas Instruments.MSP430x1xx Family Users Guide (SLAU049B.pdf),2002.


[3] 劉和平,嚴利平,張學鋒,等.TMS320LF240X DSP結構、原理及應用[M].北京:北京航空航天大學出版社,2002.


[4] 任志斌,車長征.串行外設接口SPI的應用[J] .電子技術應用,2002,29(10):2022.


[5] 魏小龍.MSP430系列單片機接口技術及系統設計實例[M].北京:北京航空航天大學出版社,2002.


朱廣斌(碩士研究生),主要研究方向為交流伺服系統。


關鍵字:MCU  DSP  SPI通信 引用地址:MCU與DSP的SPI通信設計

上一篇:MSP430 電容觸摸轉輪和LED PWM 輸出設計
下一篇:MSP430系列單片機的主要功能部件有哪些?

推薦閱讀

????在標的公司3年虧損超過15億元的情況下,上市公司用30億元收購,交易背后標的公司真實的情況究竟怎樣?  本刊記者? 方力/文  4月3日,萬盛股份(603010.SH)發布收購草案修訂稿稱,擬以30.07億元收購匠芯知本100%股權,全部以發行股份的形式支付。  該收購案最早可以追溯至2017年5月26日。當日,萬盛股份發布收購預案,并于2017年7月20日發...
意法半導體(STMicroelectronics)與軟硬體開發服務供應商Virscient合作,為車商在使用意法半導體Telemaco3P車載資訊連接處理器開發汽車解決方案時提供支援服務。Virscient為采用意法半導體的模組化車載資訊服務平臺(Modular Telematics Platform,MTP)開發和先進汽車應用的客戶提供支援服務。MTP是一個多功能的開發與展示平臺,其整合了意法半導體的T...
4月22日14:00,深圳市有方科技股份有限公司(下文簡稱“有方科技”)2020年新產品發布會將在線上召開。這是有方科技首次對外發布公司產品策略,并首次發布5G、云產品等重磅新品。屆時,集微網將攜手有方科技線上直播此次發布會,與各位業界同仁一起,直擊現場精彩。作為專注于為產業物聯網提供穩定可靠接入通信產品和相關服務的企業,有方科技產品涵蓋2G/3...
本土化企業越來越意識到要開發自主技術和產品,解決國外卡脖子問題。要實現智能制造技術的自主可控,首先應該完善人才培養機制,完備基礎科學積累,加快技術創新升級;其次,國產企業想要走向高端應用,還要解決客戶信任度的問題,歸根結底還是要把技術做好,才能讓產品應用落地。文︱郭紫文作為“十四五”規劃的開局之年,2021年智能制造業大有可為。在5G...

史海拾趣

問答坊 | AI 解惑

成品摩擦碼盤

對論壇還不熟悉~先發這里吧 就是某些小車在驅動輪旁裝的一個從動輪,直接接碼盤,與地面摩擦,以解決驅動電機碼盤因為震動計數不準的問題。 自己制作的成本高,而且重量比較大,不知道各位大蝦有沒有這方面的消息~小弟先謝了~…

查看全部問答∨

光控LED照明燈

這是一款具有光控功能的LED照明燈,它白天不工作,晚上自動點亮。該燈共用42支高亮白光發光二極管,每3支串聯,然后再相互并聯后接于電源兩瑞,適用于樓梯、過道等作照明。   電路工作原理 電路如圖所示。   220V交流電經電容限流、橋式整 ...…

查看全部問答∨

影響無線通訊可靠性和距離的幾個因素(陳家能)

影響無線通訊可靠性和距離的幾個因素(陳家能)…

查看全部問答∨

初學protel遇到了一個問題,大家來幫幫我吧!!

我把原理圖想轉換成pcb文件,可轉換成的原理圖文件是這個樣子的! 這是原理圖文件 是哪里不對呢?幫幫我吧!!!!!!!! [ 本帖最后由 lingshui 于 2009-12-4 19:42 編輯 ]…

查看全部問答∨

市電驅動的報警閃光燈

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 編輯 …

查看全部問答∨

流明學習筆記之六向下鍵

這次我償試按鍵哈   由于開發板的按鍵是沒有上拉地,直接接個地,我就選了一個下向鍵作評估 首先我得讓管腳上拉,就是高電平有效要不測不出地   查下庫中管上拉的只有一個函數   GPIOPadConfigSet 設置指定管腳的配置。函 ...…

查看全部問答∨

電子大賽的一些資料哦

本帖最后由 paulhyde 于 2014-9-15 09:23 編輯   電腦里面還有許多電子設計大賽的資料,現在整理一下給大家分享一下,呵呵,也許多即將參加大賽的同學有用哦~~   呵呵,我參加了2010年風云壇友的評選,希望大家多多支持我哦~~感謝啦 ...…

查看全部問答∨

轉讓萬利開發板。

本帖最后由 ddllxxrr 于 2016-1-7 17:10 編輯 如圖所示: 120元不包郵。 要的話留QQ 本站強薦:185娛樂∴城.足球∴真_人.彩票齊全∴手機可投∴注任何游戲. 首次開戶送10元.首存送58元.信譽絕對保證185.cc …

查看全部問答∨

vhdl 變量轉換問題

VARIABLE     A     : STD_LOGIC_VECTOR(11 DOWNTO 0); 定義變量A     如何表示    -5<A<5  這個區間…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 荆州市| 烟台市| 水富县| 乌鲁木齐市| 安化县| 融水| 囊谦县| 交城县| 拜城县| 梧州市| 岫岩| 蕉岭县| 惠来县| 泾阳县| 封丘县| 桃园市| 阳江市| 白玉县| 鄂温| 怀仁县| 竹溪县| 奇台县| 仙居县| 若羌县| 库车县| 肃南| 南开区| 东丽区| 新昌县| 南充市| 合川市| 弥勒县| 麻江县| 垦利县| 桃江县| 射洪县| 二手房| 扶绥县| 彭阳县| 达州市| 额尔古纳市|