SPI 總線技術(shù)是Motorola公司推出的一種同步串行接口。它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息,并且硬件連接較少,編程方便。 SPI接口已經(jīng)是一種標(biāo)準(zhǔn)外設(shè)接口,目前已有很多MCU及外設(shè)都帶有SPI接口。MCS51雖然也有帶SPI接口的單片機(jī)——AT89S8252,但價(jià)格相對(duì)較高。在開(kāi)發(fā)基于RFID的自助語(yǔ)音導(dǎo)游系統(tǒng)中,由于RFID讀卡模塊帶有SCI接口,XF-S4240語(yǔ)音合成模塊帶有SCI及SPI接口,如采用不帶有SPI接口的AT89C51單片機(jī),必然存在擴(kuò)展接口的問(wèn)題。
本文介紹的C51軟件模擬實(shí)現(xiàn)SPI通信接口的方法,編程簡(jiǎn)單,有效降低了系統(tǒng)的成本。該方法已在項(xiàng)目開(kāi)發(fā)中得到了驗(yàn)證。
1 語(yǔ)音模塊XF-S4240
XF-S4240中文語(yǔ)音合成模塊是中科大訊飛信息科技有限公司面向高端應(yīng)用推出的嵌入式中文語(yǔ)音合成模塊,可支持任意的中文文本、英文字母的語(yǔ)音合成。該模塊可以通過(guò)異步串口(UART)、SPI接口及I2C總線3種方式接收待合成的文本,直接合成為語(yǔ)音輸出。
XF-S4240語(yǔ)音模塊封裝成16引腳形式,其13~16腳就是SPI通信接口。
其命令格式由幀頭、數(shù)據(jù)長(zhǎng)度區(qū)及數(shù)據(jù)區(qū)3部分組成。如要合成“歡迎您參觀莫高窟。”,只需對(duì)模塊發(fā)送格式為GB2312的文本代碼:
其中0xFD為幀頭,0x00為數(shù)據(jù)區(qū)長(zhǎng)度的高字節(jié),0x14為數(shù)據(jù)區(qū)長(zhǎng)度的低字節(jié)(注意:長(zhǎng)度字節(jié)為合成代碼字節(jié)長(zhǎng)+2),0x01為語(yǔ)音合成命令,0x00為GB2312的命令碼。0xBB、0xB6為“歡”的GB2312碼,0xD3、0xAD為“迎”的G132312碼……0xA1、 0xA3為“。”的GB2312碼。
2 XF-S4240的SPl通信方式
2.1 XF-S4240的SPI通信說(shuō)明
XF-S4240模塊的SPI接口是4線全雙工同步串行通信接口。模塊在SPI通信中設(shè)置為Slave身份,SPI通信所需的時(shí)鐘信號(hào)由上位機(jī)提供,即上位機(jī)作為SPI通信中的Master身份,傳輸數(shù)據(jù)的位數(shù)為8位。
圖 1是SPI通信的時(shí)序。SPI通信屬于同步串行通信。在與模塊的通信中,上位機(jī)將提供SCK同步時(shí)鐘信號(hào)。在SCK的上升沿,模塊和上位機(jī)同時(shí)鎖存1位數(shù)據(jù),每傳輸8位數(shù)據(jù)完成1字節(jié)數(shù)據(jù)的傳輸。使用SSEL選擇使能信號(hào),是為了方便用戶(hù)在SPI通信接口上掛接多個(gè)XF-S4240板卡(或其他SPI接口的設(shè)備)。在與選定的XF-S4240板卡通信時(shí),要將此設(shè)備的SSEL置為低電平,否則無(wú)法正常通信。
在本項(xiàng)目中,單片機(jī)是主設(shè)備,語(yǔ)音模塊是從設(shè)備。主模式的顯著特征是:不論是發(fā)送還是接收,始終有SPI-CLK信號(hào),SPISTE信號(hào)不是必需的。因?yàn)镾PI串口只能有1片主機(jī),因而不存在主機(jī)選擇問(wèn)題,而且主模式下,同步時(shí)鐘SPICLK應(yīng)由主機(jī)提供。
2.2 SPI通信的工作原理
要模擬SPI接口的工作過(guò)程,必須先了解SPI通信的工作原理。
在主機(jī)發(fā)送數(shù)據(jù)時(shí),直接將要發(fā)送的數(shù)據(jù)寫(xiě)到主機(jī)的數(shù)據(jù)發(fā)送寄存器SPIDAT。這個(gè)寫(xiě)操作就自動(dòng)地啟動(dòng)了主機(jī)的發(fā)送過(guò)程,即在同步時(shí)鐘SPICLK的節(jié)拍下將SPIDAT的內(nèi)容按位送到引腳SPISIMO上。經(jīng)過(guò)8位時(shí)鐘周期完成1字節(jié)的發(fā)送。當(dāng)SPIDAT的內(nèi)容移送完畢時(shí),硬件將置一個(gè)中斷標(biāo)志 SPIINT FLAG,通知主機(jī)這個(gè)數(shù)據(jù)塊發(fā)送完畢。
對(duì)于從機(jī),在同步時(shí)鐘SPICLK的作用下,將引腳SPISI-MO上的數(shù)據(jù)按位接收到移位寄存器SPIDAT。當(dāng)一個(gè)完整的數(shù)據(jù)塊接收完畢后,將置一個(gè)中斷標(biāo)志SPIINT FLAG,通知從機(jī)這個(gè)數(shù)據(jù)塊接收完畢;同時(shí)將這個(gè)數(shù)據(jù)塊的內(nèi)容復(fù)制到從機(jī)的SPI數(shù)據(jù)接收寄存器SPIRXBUF中,并進(jìn)行右對(duì)齊。SPI通信中主機(jī)和從機(jī)的連接如圖2所示。
3 軟件模擬SPI接口的實(shí)現(xiàn)
3.1 XF-S4240語(yǔ)音模塊與單片機(jī)的連接
本設(shè)計(jì)中,AT89C51的SCI接口已被RFID讀卡模塊WM-01TA占用,由于AT89C51不帶有SPI接口,需要用I/O口模擬實(shí)現(xiàn)SPI接口來(lái)實(shí)現(xiàn)與XF-S4240的通信。為了保持電路與AT89S8252電路的一致性,在AT89C51的P1口(其中的P1.4~P1.7)上擴(kuò)展了SPI接口。
SS(P1.4):從使能輸入腳,低電平有效。
MOSI(P1.5):主數(shù)據(jù)輸出或從數(shù)據(jù)輸入腳。
MISO(P1.6):主數(shù)據(jù)輸入或從數(shù)據(jù)輸出腳。
SCK(P1.7):主時(shí)鐘輸出或從時(shí)鐘輸入腳。
CS(P1.1):片選。
RST(P1.0):語(yǔ)音模塊復(fù)位。
XF-S4240與單片機(jī)的連接如圖3所示。
3.2 虛擬SPI通信的軟件模擬流程及驗(yàn)證
虛擬與SPI流程如圖4所示。
虛擬SPI通信程序及驗(yàn)證如下:
利用此SPI通信子程序,實(shí)現(xiàn)了需要的語(yǔ)音合成功能。
結(jié)語(yǔ)
SPI接口現(xiàn)已廣泛應(yīng)用于各種數(shù)字電路中,能夠與很多種微處理器及外設(shè)相連。在沒(méi)有設(shè)置SPI專(zhuān)用接口的場(chǎng)合,采用虛擬SPI的方法是一種簡(jiǎn)便易行的解決方案。實(shí)踐證明,虛擬SPI時(shí)序技術(shù)實(shí)現(xiàn)的通信具有簡(jiǎn)單、穩(wěn)定、易用的特點(diǎn),對(duì)于提高系統(tǒng)的性?xún)r(jià)比有現(xiàn)實(shí)意義。
北京2022年10月8日 /美通社/ -- 日前,全球領(lǐng)先的IT基礎(chǔ)設(shè)施提供商浪潮信息加入龍蜥社區(qū)并成為理事單位,致力于攜手社區(qū)生態(tài)伙伴,共同推動(dòng)開(kāi)源操作系統(tǒng)的全產(chǎn)業(yè)鏈協(xié)同創(chuàng)新和產(chǎn)業(yè)化應(yīng)用。 龍蜥社區(qū)成立于2020...
關(guān)鍵字: 開(kāi)源 操作系統(tǒng) 通信 大數(shù)據(jù)(全球TMT2022年10月8日訊)IT基礎(chǔ)設(shè)施提供商浪潮信息加入龍蜥社區(qū)并成為理事單位,致力于攜手社區(qū)生態(tài)伙伴,共同推動(dòng)開(kāi)源操作系統(tǒng)的全產(chǎn)業(yè)鏈協(xié)同創(chuàng)新和產(chǎn)業(yè)化應(yīng)用。 龍蜥社區(qū)成立于2020年9月,是國(guó)內(nèi)...
關(guān)鍵字: 操作系統(tǒng) 開(kāi)源 通信 裝機(jī)量(全球TMT2022年9月30日訊)Tata Communications在印度浦那推出了專(zhuān)用私有5G"全球卓越中心"(CoE),為企業(yè)加速"工業(yè)4.0"應(yīng)用和能力。這家新的CoE是一個(gè)敏捷、安全的室內(nèi)設(shè)施,用來(lái)測(cè)試和...
關(guān)鍵字: 通信 5G COMMUNICATIONS 圖像分析9月27日消息,據(jù)央視報(bào)道,今天7時(shí)50分,我國(guó)在太原衛(wèi)星發(fā)射中心使用長(zhǎng)征六號(hào)運(yùn)載火箭,以“一箭三星”方式,成功將試驗(yàn)十六號(hào)A/B星和試驗(yàn)十七號(hào)衛(wèi)星發(fā)射升空,衛(wèi)星順利進(jìn)入預(yù)定軌道,發(fā)射任務(wù)獲得圓滿成功。該組衛(wèi)星主要用于國(guó)...
關(guān)鍵字: 長(zhǎng)征六號(hào) 衛(wèi)星 通信VPN是一種常用于連接中、大型企業(yè)或團(tuán)體與團(tuán)體間的私人網(wǎng)絡(luò)的通信方式。它利用隧道協(xié)議(Tunneling Protocol)來(lái)達(dá)到保密、發(fā)送端認(rèn)證、消息準(zhǔn)確性等私人消息安全效果,這種技術(shù)可以用不安全的網(wǎng)絡(luò)(例如:互聯(lián)網(wǎng))...
關(guān)鍵字: vpn專(zhuān)線 通信 互聯(lián)網(wǎng)(全球TMT2022年9月20日訊)2022年9月16日,以"同心聚力、共創(chuàng)算網(wǎng)發(fā)展未來(lái);創(chuàng)新合作、共享數(shù)字經(jīng)濟(jì)紅利"為主題的2022浪潮通信產(chǎn)業(yè)聯(lián)盟合作伙伴大會(huì)在濟(jì)南召開(kāi)。 在產(chǎn)業(yè)聯(lián)盟合作伙伴大會(huì)上,浪...
關(guān)鍵字: 通信 網(wǎng)絡(luò) APPLICATIONS POWER我們學(xué)校的定位是給企業(yè)輸送“運(yùn)維”人員,至于“設(shè)計(jì)”人員不再考慮范圍之內(nèi), 只需要學(xué)生明白設(shè)備的工作原理、流程即可,培養(yǎng)具備設(shè)計(jì)能力的學(xué)生即累老師也累學(xué)生。
關(guān)鍵字: 通信專(zhuān)業(yè) 通信