本發(fā)明涉及通信領(lǐng)域,具體涉及一種基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)及方法。
背景技術(shù):
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ī)選擇線NSS(有的SPI接口芯片帶有中斷信號(hào)線INT、有的SPI接口芯片沒(méi)有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI)。
SPI接口是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM、FLASH、實(shí)時(shí)時(shí)鐘、AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。
SPI接口是在CPU和外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來(lái)說(shuō)比I2C總線要快,速度可達(dá)到幾Mbps。
在PLC架構(gòu)中為了降低主控CPU的負(fù)荷以及提高現(xiàn)場(chǎng)總線的性能,會(huì)考慮將現(xiàn)場(chǎng)總線使用單獨(dú)CPU的方式,這樣就會(huì)出現(xiàn)雙CPU的架構(gòu)。實(shí)現(xiàn)這樣的架構(gòu)需要考慮兩個(gè)CPU之間的通信性能,一般會(huì)采用DPRAM(全稱(chēng)為Dual Port RAM或雙口RAM)的方式,這樣可以提高CPU之間的數(shù)據(jù)傳輸能力。
DPRAM為以下數(shù)據(jù)提供了存儲(chǔ)空間:
1)主機(jī)到PMAC的數(shù)據(jù):
電機(jī)的指令位置,電機(jī)指令速度,機(jī)床在線命令,運(yùn)動(dòng)程序中的控制變量值。
2)從PMAC到主機(jī)的數(shù)據(jù):
電機(jī)狀態(tài)變量,電機(jī)的實(shí)際位置,電機(jī)的實(shí)際速度,電機(jī)的實(shí)際加速度,電機(jī)的跟隨誤差,機(jī)床及控制面板的開(kāi)關(guān)量,手搖脈沖發(fā)生器的脈沖數(shù)值。
在PMAC中,PLC程序以一定的時(shí)間間隔運(yùn)行,在PLC程序中,可以讀出上述數(shù)據(jù),經(jīng)過(guò)簡(jiǎn)單的轉(zhuǎn)換再將數(shù)據(jù)寫(xiě)入到DPRAM中,主機(jī)就可以讀出數(shù)據(jù)并進(jìn)行處理。
選擇DPRAM作為CPU之間的通信鏈路在數(shù)據(jù)傳輸性能上有很大的提高,但同時(shí)也需要考慮兩個(gè)方面的影響,一是整個(gè)產(chǎn)品的成本會(huì)上升,主要表現(xiàn)在增加了DPRAM器件以及使用DPRAM的話需要選擇支持外部SRAM的CPU,而在同一個(gè)系列的CPU中支持外部SRAM的都屬于中高檔的CPU,價(jià)格比較高。二是增加了DPRAM,那么必然要占據(jù)PCB的空間,同時(shí)由于DPRAM采用的是并行傳輸?shù)姆绞?,?duì)于PCB的布線也會(huì)有一定的挑戰(zhàn),對(duì)于信號(hào)完整性和PCB的EMC性能都會(huì)有很大的挑戰(zhàn)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)上的不足,本發(fā)明的目的是提供一種基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)及方法,采用SPI接口模擬DPRAM的方式,這樣降低成本的同時(shí)可以滿足通信的性能要求。
本發(fā)明的目的是采用下述技術(shù)方案實(shí)現(xiàn)的:
本發(fā)明提供一種基于SPI串行鏈路的模擬DPRAM通信系統(tǒng),其改進(jìn)之處在于,所述通信系統(tǒng)包括:主控制CPU、模擬DPRAM、IO總線控制CPU、SPI驅(qū)動(dòng)設(shè)備和SPI外設(shè);所述模擬DPRAM包括模擬DPRAM接口;所述模擬DPRAM接口、主控制CPU、SPI驅(qū)動(dòng)設(shè)備、SPI外設(shè)和IO總線控制CPU依次連接。
進(jìn)一步地,所述主控制CPU通過(guò)模擬DPRAM接口與所述SPI外設(shè)連接;所述SPI外設(shè)通過(guò)模擬DPRAM接口與所述IO總線控制CPU連接;所述SPI驅(qū)動(dòng)設(shè)備用于實(shí)現(xiàn)主控制CPU和IO總線控制CPU的收發(fā)控制。
進(jìn)一步地,所述主控制CPU為SPI控制主設(shè)備;所述IO總線控制CPU為SPI控制從設(shè)備。
進(jìn)一步地,所述模擬DPRAM還包括RAM和SPI寄存器,所述RAM和SPI寄存器依次連接。
進(jìn)一步地,所述模擬DPRAM接口,用于提供類(lèi)似DPRAM的接口讀寫(xiě)方式,將通信系統(tǒng)的實(shí)現(xiàn)封裝起來(lái)。
進(jìn)一步地,所述SPI控制主設(shè)備和SPI控制從設(shè)備,均用于從RAM到SPI寄存器的讀取和寫(xiě)入控制。
進(jìn)一步地,所述SPI外設(shè),包含在單片機(jī)內(nèi)部的SPI設(shè)備(SPI設(shè)備一般是指具有SPI接口的外設(shè)(相對(duì)于CPU來(lái)說(shuō)),比如SPI flash,SPI SD卡。SPI控制主設(shè)備指能夠主動(dòng)發(fā)起SPI通信的設(shè)備一般是指CPU。SPI控制從設(shè)備一般指具有SPI接口的外設(shè),即SPI設(shè)備。一個(gè)單片機(jī)為SPI主控制設(shè)備,一個(gè)單片機(jī)為SPI從控制設(shè)備)[SPI設(shè)備一般是指具有SPI接口的外設(shè)(相對(duì)于CPU來(lái)說(shuō)),比如SPI flash,SPI SD卡。SPI控制主設(shè)備指能夠主動(dòng)發(fā)起SPI通信的設(shè)備一般是指CPU。SPI控制從設(shè)備一般指具有SPI接口的外設(shè),即SPI設(shè)備。本申請(qǐng)是一個(gè)單片機(jī)為SPI主控制設(shè)備,一個(gè)單片機(jī)為SPI從控制設(shè)備。。
進(jìn)一步地,所述主控制CPU、模擬DPRAM、IO總線控制CPU、SPI驅(qū)動(dòng)設(shè)備和均封裝于單片機(jī)中,所述單片機(jī)的個(gè)數(shù)為2;所述SPI外設(shè)為運(yùn)行于單片機(jī)中的應(yīng)用程序。
進(jìn)一步地,所述單片機(jī)采用邏輯控制器PLC實(shí)現(xiàn)。
本發(fā)明還提供一種基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)的通信方法,其改進(jìn)之處在于,所述方法包括下述步驟:
步驟1:采用模擬DPRAM接口,提供類(lèi)似DPRAM的接口讀寫(xiě)方式,將內(nèi)部的實(shí)現(xiàn)封裝起來(lái);
步驟2:主控制CPU對(duì)SPI控制,包含從RAM到SPI寄存器的讀取和寫(xiě)入控制;
步驟3:SPI驅(qū)動(dòng)設(shè)備實(shí)現(xiàn)SPI控制主設(shè)備和SPI控制從設(shè)備的收發(fā)控制。
步驟4:SPI外設(shè),單片機(jī)內(nèi)部的SPI設(shè)備。
步驟5:進(jìn)行IO總線控制CPU的控制。
與最接近的現(xiàn)有技術(shù)相比,本發(fā)明提供的技術(shù)方案達(dá)到的有益效果是:
本發(fā)明提供的技術(shù)方案實(shí)現(xiàn)了采用SPI接口模擬DPRAM的方式,這樣降低成本的同時(shí)可以滿足通信的性能要求,對(duì)PCB的尺寸減小也有幫助。重要的是,其他部分的軟件可以不做修改,和采用DPRAM的軟件架構(gòu)保持一致。
根據(jù)邏輯上的定義,物理上通過(guò)SPI來(lái)連接兩個(gè)獨(dú)立的單片機(jī)(CPU),并且需要設(shè)定主控制CPU為SPI主設(shè)備,IO總線控制CPU為SPI從設(shè)備,可以減輕CPU的負(fù)擔(dān),從而對(duì)整個(gè)系統(tǒng)的性能有很大的提升。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)的邏輯示意圖;
圖2是基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)的物理實(shí)現(xiàn)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)的描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所得到的所有其它實(shí)施方式,都屬于本發(fā)明所保護(hù)的范圍。
第一優(yōu)選技術(shù)方案
采用物理器件DPRAM作為雙CPU之間通信的方式,雖然能夠提供比較高的性能,但成本也比較高,不但需要增加DPRAM器件,還需要選擇支持SRAM接口的高檔CPU,同時(shí)也會(huì)增加PCB的面積。針對(duì)在PLC架構(gòu)中DPRAM作為CPU之間通信的主要方式,本發(fā)明提出了一種新型的通信方式,能夠達(dá)到DPRAM的通信性能,并且保持DPRAM的接口從而可以保持軟件架構(gòu)的一致。
性能計(jì)算:假定SPI使用16MHz的速率(基本上單片機(jī)的SPI外設(shè)都可以達(dá)到這個(gè)速率),那么傳輸4KB數(shù)據(jù)(發(fā)送4KB,接收4KB)需要的時(shí)間為(4*1000*8)/16=2000us=2ms。這個(gè)時(shí)間可以滿足覺(jué)大多數(shù)PLC控制器的需求。
本發(fā)明提供一種基于SPI串行鏈路的模擬DPRAM通信系統(tǒng),基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)的邏輯示意圖如圖1所示,所述通信系統(tǒng)包括:主控制CPU、模擬DPRAM、IO總線控制CPU、SPI驅(qū)動(dòng)設(shè)備和SPI外設(shè);所述模擬DPRAM包括模擬DPRAM接口;所述模擬DPRAM接口、主控制CPU、SPI驅(qū)動(dòng)設(shè)備、SPI外設(shè)和IO總線控制CPU依次連接。
上述優(yōu)選技術(shù)方案中,所述主控制CPU通過(guò)模擬DPRAM接口與所述SPI外設(shè)連接;所述SPI外設(shè)通過(guò)模擬DPRAM接口與所述IO總線控制CPU連接;所述SPI驅(qū)動(dòng)設(shè)備用于實(shí)現(xiàn)主控制CPU和IO總線控制CPU的收發(fā)控制。
上述優(yōu)選技術(shù)方案中,所述主控制CPU為SPI控制主設(shè)備;所述IO總線控制CPU為SPI控制從設(shè)備。
上述優(yōu)選技術(shù)方案中,所述模擬DPRAM還包括RAM和SPI寄存器,所述RAM和SPI寄存器依次連接。
上述優(yōu)選技術(shù)方案中,所述模擬DPRAM接口,用于提供類(lèi)似DPRAM的接口讀寫(xiě)方式,將通信系統(tǒng)的實(shí)現(xiàn)封裝起來(lái)。
上述優(yōu)選技術(shù)方案中,所述SPI控制主設(shè)備和SPI控制從設(shè)備,均用于從RAM到SPI寄存器的讀取和寫(xiě)入控制。
上述優(yōu)選技術(shù)方案中,所述SPI外設(shè),包含在單片機(jī)內(nèi)部的SPI設(shè)備(SPI設(shè)備、SPI控制主設(shè)備和SPI控制從設(shè)備三者是什么關(guān)系?)。
上述優(yōu)選技術(shù)方案中,所述主控制CPU、模擬DPRAM、IO總線控制CPU、SPI驅(qū)動(dòng)設(shè)備和SPI外設(shè)均封裝于單片機(jī)中。
上述優(yōu)選技術(shù)方案中,所述單片機(jī)采用邏輯控制器PLC實(shí)現(xiàn)。
本方案實(shí)現(xiàn)了采用SPI接口模擬DPRAM的方式,這樣降低成本的同時(shí)可以滿足通信的性能要求,對(duì)PCB的尺寸減小也有幫助。
第二優(yōu)選技術(shù)方案
該發(fā)明的在邏輯上實(shí)現(xiàn)了一個(gè)DPRAM的通信接口,主要特征為提供了和真實(shí)DPRAM器件非常類(lèi)似的操作方式,這樣可以很大的方便了軟件的移植。在邏輯上分為四層實(shí)現(xiàn):
-模擬DPRAM接口,主要是提供了類(lèi)似DPRAM的接口讀寫(xiě)方式,將內(nèi)部的實(shí)現(xiàn)封裝起來(lái)。
-SPI控制,主要是包含了從RAM到SPI寄存器的讀取和寫(xiě)入控制。
-SPI驅(qū)動(dòng),主要是實(shí)現(xiàn)了SPI主從收發(fā)控制。
-SPI外設(shè),單片機(jī)內(nèi)部的SPI設(shè)備。
本申請(qǐng)是兩個(gè)具有SPI接口的單片機(jī),來(lái)模擬實(shí)現(xiàn)dpram。SPI驅(qū)動(dòng)是運(yùn)行在單片機(jī)內(nèi)部的程序。
本發(fā)明還提供一種基于SPI串行鏈路的模擬DPRAM通信系統(tǒng)的通信方法,所述方法包括下述步驟:
步驟1:采用模擬DPRAM接口,提供類(lèi)似DPRAM的接口讀寫(xiě)方式,將內(nèi)部的實(shí)現(xiàn)封裝起來(lái);
步驟2:主控制CPU對(duì)SPI控制,包含從RAM到SPI寄存器的讀取和寫(xiě)入控制;
步驟3:SPI驅(qū)動(dòng)設(shè)備實(shí)現(xiàn)SPI控制主設(shè)備和SPI控制從設(shè)備的收發(fā)控制。
步驟4:SPI外設(shè),單片機(jī)內(nèi)部的SPI設(shè)備。
步驟5:進(jìn)行IO總線控制CPU的控制。
根據(jù)邏輯上的定義,物理上通過(guò)SPI來(lái)連接兩個(gè)獨(dú)立的單片機(jī)(CPU),并且需要設(shè)定主控制CPU為SPI主設(shè)備,IO總線控制CPU為SPI從設(shè)備。圖2中列出的一種物理實(shí)現(xiàn)采用了SPI+DMA的方式,可以減輕CPU的負(fù)擔(dān),從而對(duì)整個(gè)系統(tǒng)的性能有很大的提升。
本發(fā)明采用的技術(shù)方案克服了現(xiàn)有技術(shù)中采用物理器件DPRAM作為雙CPU之間通信的方式,雖然能夠提供比較高的性能,但成本也比較高,不但需要增加DPRAM器件,還需要選擇支持SRAM接口的高檔CPU,同時(shí)也會(huì)增加PCB的面積的缺陷。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。