使用spi總線擴(kuò)展cpu模塊的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及SPI通信技術(shù)領(lǐng)域,具體是指一種使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)及方法。
【背景技術(shù)】
[0002]SPI (Serial Peripheral Interface,串行外設(shè)接口)是由 Motorola 首先在其MC68HCXX系列處理器上定義的一種高速、全雙工、同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,占用PCB空間少、主從器件間的互聯(lián)簡(jiǎn)單,正是出于這種簡(jiǎn)單易用的特性,如今在通信設(shè)備領(lǐng)域的應(yīng)用越來(lái)越廣泛。
[0003]SPI接口通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于SPI的設(shè)備共有的,它們是SDI (數(shù)據(jù)輸入)、SDO (數(shù)據(jù)輸出)、SCLK (時(shí)鐘)、CS (片選)。
[0004]UART (Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實(shí)現(xiàn)全雙工發(fā)送和接收。
[0005]如今近年來(lái),具有完整的測(cè)量或控制功能的智能模塊不斷涌現(xiàn),而此類(lèi)模塊均需通過(guò)RS-232S或RS-485串行口與上位單片機(jī)或微機(jī)進(jìn)行通信,以構(gòu)成分級(jí)分布式測(cè)控系統(tǒng),而現(xiàn)階段的大部分單片機(jī)的UART串口數(shù)不會(huì)超過(guò)兩個(gè),很難滿(mǎn)足既與智能模塊通信又與上位微機(jī)進(jìn)行通信的要求。
[0006]為了實(shí)現(xiàn)擴(kuò)展多個(gè)UART接口,通常使用的方案是利用專(zhuān)用的UART多串口擴(kuò)展芯片,但是這種芯片的價(jià)格普遍較高,且擴(kuò)展路數(shù)有限(常見(jiàn)的是四路),功能單一。使用從CPU擴(kuò)展UART接口,靈活度高,功能強(qiáng)大,擴(kuò)展路數(shù)在SPI總線數(shù)度允許的情況下,可無(wú)限擴(kuò)展,還可以在擴(kuò)展了 UART功能的同時(shí),額外擴(kuò)展從CPU的所有外設(shè)接口,包括EEPR0M,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,電源管理,顯示,GP1等。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點(diǎn),提供了一種能夠?qū)崿F(xiàn)的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)及方法。
[0008]為了實(shí)現(xiàn)上述目的,本發(fā)明的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)及方法具有如下構(gòu)成:
[0009]該使用SPI總線擴(kuò)展CPU模塊的系統(tǒng),其主要特點(diǎn)是,所述的系統(tǒng)包括主CPU以及數(shù)個(gè)從CPU,所述的主CPU包括主SPI接口,所述的從CPU包括數(shù)個(gè)模塊及從SPI接口 ;所述的主CPU通過(guò)SPI總線與所述的從CPU進(jìn)行數(shù)據(jù)通信,所述的從CPU的模塊與外界模塊相連接,所述的主CPU的時(shí)鐘端分別與所述的從CPU的時(shí)鐘端相連接,所述的主CPU數(shù)個(gè)片選管腳與所述的數(shù)個(gè)從CPU各自的片選管腳相連接,所述的主CPU的數(shù)個(gè)中斷管腳與所述的數(shù)個(gè)從CPU各自的中斷管腳相連接。
[0010]進(jìn)一步地,所述的模塊為UART接口、存儲(chǔ)模塊、時(shí)鐘模塊、AD轉(zhuǎn)換模塊、電源管理模塊、顯示模塊或者GP1模塊。
[0011]本發(fā)明還涉及一種使用SPI總線擴(kuò)展CPU模塊的方法,其主要特點(diǎn)是,所述的主CPU描述多個(gè)模塊與外界模塊的通信以及主CPU與多個(gè)從CPU的SPI通信,所述的方法包括以下步驟:
[0012]當(dāng)主CPU訪問(wèn)某一個(gè)模塊時(shí):
[0013](1.1)所述的主CPU通過(guò)與所述的模塊相對(duì)應(yīng)的從CPU的片選管腳選擇該從CPU ;
[0014](1.2)所述的主CPU通過(guò)SPI總線與該模塊進(jìn)行數(shù)據(jù)通信,且其余從CPU不能檢測(cè)主CPU的時(shí)鐘變換及主SPI總線上的通信數(shù)據(jù);
[0015]當(dāng)從CPU接收到某一模塊的數(shù)據(jù)時(shí):
[0016](2.1)所述的從CPU在其中斷寄存器中產(chǎn)生中斷數(shù)據(jù);
[0017](2.2)所述的主CPU接收中斷數(shù)據(jù)并通過(guò)所述的SPI總線讀取所述的從CPU的中斷狀態(tài)以確定接收數(shù)據(jù)的模塊,從而通過(guò)SPI總線與該模塊進(jìn)行數(shù)據(jù)通信。
[0018]進(jìn)一步地,在主CPU運(yùn)行過(guò)程中,所述的方法還包括以下步驟:
[0019]所述的主CPU實(shí)時(shí)地監(jiān)測(cè)所述的從CPU的中斷寄存器的狀態(tài)
[0020]采用了該發(fā)明中的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)及方法,靈活度高,功能強(qiáng)大,擴(kuò)展路數(shù)在SPI總線數(shù)度允許的情況下,可無(wú)限擴(kuò)展,還可以在擴(kuò)展了 UART功能的同時(shí),額外擴(kuò)展從CPU的所有外設(shè)接口,包括EEPROM、FLASH、實(shí)時(shí)時(shí)鐘、AD轉(zhuǎn)換器、電源管理、顯不、GP1等。
【附圖說(shuō)明】
[0021]圖1為本發(fā)明的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)的第一實(shí)施例的結(jié)構(gòu)示意圖。
[0022]圖2為本發(fā)明的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)的第一實(shí)施例的軟件分層圖。
【具體實(shí)施方式】
[0023]為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實(shí)施例來(lái)進(jìn)行進(jìn)一步的描述。
[0024]圖1為本發(fā)明的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)的第一實(shí)施例的結(jié)構(gòu)示意圖。它包括一個(gè)主CPU(帶有SPI總線)和多個(gè)從CPU(包含多UART接口和SPI總線),從CPU一方面通過(guò)主SPI接口(Master SPI)與主CPU的從SPI接口(Salve SPI)相連接,另一方面通過(guò)從CPU的UART接口分別與各種串行模塊相連接;主從CPU之間的控制信號(hào)連接,除了片選線CS連接外,還需要一根中斷線INT連接;即主CPU與其中一個(gè)從CPU之間的連接,不僅需要3根復(fù)用的SPI總線(SD1、SDO、SCLK),還需要一根中斷線INT和一根片選線CS。若接入N個(gè)從CPU,每個(gè)從CPU都有M個(gè)UART接口,那么就可以擴(kuò)展MX N個(gè)串口。此外,需要說(shuō)明的是本系統(tǒng)功能擴(kuò)展性好,除UART接口外,從CPU上的存儲(chǔ)、時(shí)鐘、AD轉(zhuǎn)換器、電源管理、顯示,GP1等模塊也都可以通過(guò)此SPI總線擴(kuò)展,在此不再贅述。
[0025]該方法的軟件分層模塊,如圖2所示:
[0026]主CPU上運(yùn)行LINUX操作系統(tǒng),在UART驅(qū)動(dòng)接口框架中嵌入SPI的驅(qū)動(dòng)接口,這樣一來(lái),對(duì)于上層應(yīng)用來(lái)說(shuō),僅僅需要調(diào)用相應(yīng)的TTY節(jié)點(diǎn)來(lái)讀寫(xiě)數(shù)據(jù),簡(jiǎn)化了上層應(yīng)用開(kāi)發(fā)難度。
[0027]從CPU上需要運(yùn)行的FIRMWARE用于監(jiān)控SP1、UART和其它擴(kuò)展外設(shè)的消息,向主CPU輸出對(duì)應(yīng)中斷信號(hào),觸發(fā)SPI消息交互。
[0028]本實(shí)施例中的使用SPI總線擴(kuò)展UART的實(shí)現(xiàn)方法具體包括以下步驟:
[0029]步驟1、使用主CPU監(jiān)控中從CPU接入的中斷信號(hào),并控制片選管腳CS與指定的從CPU進(jìn)行SPI數(shù)據(jù)通訊。
[0030]步驟2、使用從CPU描述多個(gè)UART接口與外部串行模塊通訊,同時(shí)描述一個(gè)SPI接口與主CPU通訊。
[0031 ] 步驟3、當(dāng)接入N個(gè)從CPU時(shí),每個(gè)從CPU有M個(gè)串口控制器,主CPU就可以通過(guò)一個(gè)SPI接口擴(kuò)展MXN個(gè)UART接口。
[0032]步驟4、當(dāng)主CPU需要訪問(wèn)眾多UART接口中的某一個(gè)時(shí),需要先通過(guò)主CPU拉低對(duì)應(yīng)UART接口的從CPU的片選線CS,然后再通過(guò)SPI接口輸出正常的訪問(wèn)指令即可;此時(shí)只有片選線CS為低電平的那個(gè)從CPU對(duì)應(yīng)的SPI控制器能檢測(cè)到主CPU主SPI接口時(shí)鐘線上高低電平的變化,而其他的SPI從器件由片選線CS恒為高而無(wú)法觸發(fā)其與主CPU的SPI接口的通信,從而在各個(gè)從CPU與主CPU的SPI接口之間通信不會(huì)造成沖突。
[0033]步驟5、當(dāng)從CPU收到某一 UART接口數(shù)據(jù)時(shí),首先觸發(fā)從CPU中斷管腳INT,主CPU收到中斷信號(hào),通過(guò)SPI總線讀取從CPU上的中斷狀態(tài)寄存器,此時(shí)主CPU就知道是哪一個(gè)UART接口的數(shù)據(jù),通過(guò)SPI總線接收數(shù)據(jù)后,傳給對(duì)應(yīng)驅(qū)動(dòng)端口處理。
[0034]采用了該發(fā)明中的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)及方法,靈活度高,功能強(qiáng)大,擴(kuò)展路數(shù)在SPI總線數(shù)度允許的情況下,可無(wú)限擴(kuò)展,還可以在擴(kuò)展了 UART功能的同時(shí),額外擴(kuò)展從CPU的所有外設(shè)接口,包括EEPROM、FLASH、實(shí)時(shí)時(shí)鐘、AD轉(zhuǎn)換器、電源管理、顯不、GP1等。
[0035]在此說(shuō)明書(shū)中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說(shuō)明書(shū)和附圖應(yīng)被認(rèn)為是說(shuō)明性的而非限制性的。
【主權(quán)項(xiàng)】
1.一種使用SPI總線擴(kuò)展CPU模塊的系統(tǒng),其特征在于,所述的系統(tǒng)包括主CPU以及數(shù)個(gè)從CPU,所述的主CPU包括主SPI接口,所述的從CPU包括數(shù)個(gè)模塊及從SPI接口 ;所述的主CPU通過(guò)SPI總線與所述的從CPU進(jìn)行數(shù)據(jù)通信,所述的從CPU的模塊與外界模塊相連接,所述的主CPU的時(shí)鐘端分別與所述的從CPU的時(shí)鐘端相連接,所述的主CPU數(shù)個(gè)片選管腳與所述的數(shù)個(gè)從CPU各自的片選管腳相連接,所述的主CPU的數(shù)個(gè)中斷管腳與所述的數(shù)個(gè)從CPU各自的中斷管腳相連接。2.根據(jù)權(quán)利要求1所述的使用SPI總線擴(kuò)展接口的系統(tǒng),其特征在于,所述的模塊為UART接口、存儲(chǔ)模塊、時(shí)鐘模塊、AD轉(zhuǎn)換模塊、電源管理模塊、顯示模塊或者GP1模塊。3.一種基于權(quán)利要求1所述的系統(tǒng)實(shí)現(xiàn)使用SPI總線擴(kuò)展CPU模塊的方法,其特征在于,所述的主CPU描述多個(gè)模塊與外界模塊的通信以及主CPU與多個(gè)從CPU的SPI通信,所述的方法包括以下步驟: 當(dāng)主CPU訪問(wèn)某一個(gè)模塊時(shí): (1.1)所述的主CPU通過(guò)與所述的模塊相對(duì)應(yīng)的從CPU的片選管腳選擇該從CPU ; (1.2)所述的主CPU通過(guò)SPI總線與該模塊進(jìn)行數(shù)據(jù)通信,且其余從CPU不能檢測(cè)主CPU的時(shí)鐘變換及主SPI總線上的通信數(shù)據(jù); 當(dāng)從CPU接收到某一模塊的數(shù)據(jù)時(shí): (2.1)所述的從CPU在其中斷寄存器中產(chǎn)生中斷數(shù)據(jù); (2.2)所述的主CPU接收中斷數(shù)據(jù)并通過(guò)所述的SPI總線讀取所述的從CPU的中斷狀態(tài)以確定接收數(shù)據(jù)的模塊,從而通過(guò)SPI總線與該模塊進(jìn)行數(shù)據(jù)通信。4.根據(jù)權(quán)利要求3所述的使用SPI總線擴(kuò)展CPU模塊的方法,其特征在于,在主CPU運(yùn)行過(guò)程中,所述的方法還包括以下步驟: 所述的主CPU實(shí)時(shí)地監(jiān)測(cè)所述的從CPU的中斷寄存器的狀態(tài)。
【專(zhuān)利摘要】本發(fā)明涉及一種使用SPI總線擴(kuò)展CPU模塊的系統(tǒng),所述的系統(tǒng)包括主CPU以及數(shù)個(gè)從CPU,主CPU包括主SPI接口,從CPU包括數(shù)個(gè)模塊及從SPI接口;主CPU通過(guò)SPI總線與從CPU進(jìn)行數(shù)據(jù)通信,從CPU的模塊與外界模塊相連接,主CPU的時(shí)鐘端分別與從CPU的時(shí)鐘端相連接,所述的主CPU數(shù)個(gè)片選管腳與所述的數(shù)個(gè)從CPU各自的片選管腳相連接,所述的主CPU的數(shù)個(gè)中斷管腳與所述的數(shù)個(gè)從CPU各自的中斷管腳相連接;本發(fā)明還涉及一種使用SPI總線擴(kuò)展CPU模塊的方法。采用該種結(jié)構(gòu)的使用SPI總線擴(kuò)展CPU模塊的系統(tǒng)及方法,靈活度高,功能強(qiáng)大,擴(kuò)展路數(shù)在SPI總線數(shù)度允許的情況下,可無(wú)限擴(kuò)展。
【IPC分類(lèi)】G06F13/40, G06F13/42
【公開(kāi)號(hào)】CN104933004
【申請(qǐng)?zhí)枴緾N201510355832
【發(fā)明人】吳智立
【申請(qǐng)人】上海市共進(jìn)通信技術(shù)有限公司
【公開(kāi)日】2015年9月23日
【申請(qǐng)日】2015年6月24日