關(guān)于單片機(jī)SPI器件的串口控制
出處:現(xiàn)代電子技術(shù) 發(fā)布于:2011-09-02 17:33:42
1.SPI接口簡介
SPI(Serial Peripheral Interface--串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。SPI有三個(gè)寄存器分別為:控制寄存器SPCR,狀態(tài)寄存器SPSR,數(shù)據(jù)寄存器SPDR。外圍設(shè)置FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動(dòng)器、A/D轉(zhuǎn)換器和MCU等。SPI總線系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時(shí)鐘線(SCLK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SS(有的SPI接口芯片帶有中斷信號線INT、有的SPI接口芯片沒有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI)。
SPI接口的全稱是"Serial Peripheral Interface",意為串行外圍接口,是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。 SPI接口是在CPU和外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達(dá)到幾Mbps。
接口包括以下四種信號:
(1)MOSI – 主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入
?。?)MISO – 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出
?。?)SCLK – 時(shí)鐘信號,由主器件產(chǎn)生
(4)/SS – 從器件使能信號,由主器件控制
SPI 總線具有以下特點(diǎn):
(1)因連線較少,可簡化電路設(shè)計(jì)。并行總線擴(kuò)展方法通常需要8根數(shù)據(jù)線、8~16根地址線、2~3根控制線。而SPI總線設(shè)計(jì),僅需4根數(shù)據(jù)線和控制線即可完成并行擴(kuò)展所實(shí)現(xiàn)的功能。
(2)器件統(tǒng)一編址,并與系統(tǒng)地址無關(guān),操作SPI獨(dú)立性好。
(3)器件操作遵循統(tǒng)一的規(guī)范.使系統(tǒng)軟硬件具有良好的通用性。
2 AD7390的基本結(jié)構(gòu)和工作原理
AD7390是ADl公司生產(chǎn)的12位分辨率電壓輸出數(shù)/模轉(zhuǎn)換器。該DAC為用戶提供低成本、高的可控電壓解決方案,使用單電源+3V系統(tǒng)供電。器件保證電源電壓為2.7~5.5V時(shí)消耗不到100mA的電流,所以該器件適用于一些對功效要求高的設(shè)備,比如電池供電系統(tǒng)。輸出電壓取決于外部參考輸入電壓。DACOUT輸出介于REFIN與地之間的任意值,其內(nèi)部框圖如圖2所示。

內(nèi)部雙緩沖串行數(shù)據(jù)接口提供高速轉(zhuǎn)換,微控制器通過三線SPI控制器件、串行數(shù)據(jù)(SDI)、時(shí)鐘(CLK)和使能(LD)引腳。此外,使用CLR輸入可以對輸出清零。操作時(shí)序如圖3所示。

3 AD7390的串口控制
電腦通過RS 232向MCU發(fā)送控制信號,再由MCU控制AD7390,完成整個(gè)設(shè)置過程。通過串口控制AD7390的軟件流程如圖4所示。一旦有數(shù)據(jù)寫入單片機(jī),則單片機(jī)將重新設(shè)置AD7390。

單片機(jī)程序分為三大模塊,分別是SPI控制模塊、串口接收模塊和操作信息反饋模塊。
SPI控制模塊產(chǎn)生CLK,LD,并在CLK的上升沿到來之前,保證SDI數(shù)據(jù)的穩(wěn)定,以便AD7390準(zhǔn)確地采集到數(shù)據(jù)。CLK時(shí)鐘的頻率根據(jù)器件的典型延遲決定,不同器件有不同的延遲,所以它決定了不同器件的時(shí)鐘應(yīng)該不一樣。
串口接收模塊完成從電腦接收數(shù)據(jù)并保存數(shù)據(jù)。由一片MAX 232完成RS 232電平與TTL電平之間的轉(zhuǎn)換。因?yàn)閭鬏數(shù)氖沁B續(xù)性數(shù)據(jù),因此在接收程序的編寫時(shí),要注意中斷申請的屏蔽,才能準(zhǔn)確地接收到全部數(shù)據(jù)。
在利用串口調(diào)試助手調(diào)試時(shí),留意發(fā)送數(shù)據(jù)的格式,是否以16進(jìn)制發(fā)送,會影響接收到的數(shù)據(jù)。比如,發(fā)送字母“E”,如果以16進(jìn)制發(fā)送。發(fā)送的實(shí)際數(shù)據(jù)是“15”,而接收到的數(shù)據(jù)是“15”的ASCII碼“49”、“53”;如果不以16進(jìn)制發(fā)送,則發(fā)送的是字母“E”的ASCII碼“69’。由此可以看出它們之間的差別。因此在接收方要得到想要的數(shù)據(jù),則需要進(jìn)行轉(zhuǎn)換。該轉(zhuǎn)換可參看后面的程序。
操作信息反饋模塊完成操作結(jié)果的可視化輸出,通過內(nèi)部計(jì)算,輸出設(shè)置的電壓值,這為調(diào)試過程提供了很大的便利。
AD7390為12位數(shù)/模轉(zhuǎn)換器。該器件接收16位數(shù)據(jù),數(shù)據(jù)格式如圖5所示,取低12位作為有效數(shù)據(jù),自動(dòng)舍棄高4位。因?yàn)閱纹瑱C(jī)傳輸數(shù)據(jù)以字節(jié)(8 b)為單位,所以采用16位傳輸模式。

部分程序代碼如下:


4 結(jié) 語
通過串口的應(yīng)用,SPI器件的控制變得很方便。由于串口占用資源少,所以SPI接口在集成芯片中越來越廣泛的應(yīng)用,將使該控制模式成為以后系統(tǒng)中的典型設(shè)計(jì)。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22









