專(zhuān)利名稱(chēng):可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,特別是一種可大幅減少數(shù)據(jù)傳輸所需輸入/輸出引腳的通信協(xié)議。
背景技術(shù):
可編程邏輯控制器是一種固態(tài)電子裝置,它利用來(lái)自輸入/輸出裝置的回授信號(hào)及儲(chǔ)存的程序來(lái)控制機(jī)械或程序的操作。可編程邏輯控制器主要由處理中心單元及輸入/輸出模塊接口兩大部分所組成。其中,處理中心單元一般均利用微處理器作為可編程邏輯控制器的中央處理單元。
微處理器間的數(shù)據(jù)傳輸模式可分為并行傳輸及串行傳輸,所謂的并行傳輸是指在同一時(shí)間內(nèi)以多個(gè)數(shù)據(jù)位為一個(gè)轉(zhuǎn)移單位的傳輸方式,即傳輸?shù)臄?shù)據(jù)中字節(jié)中的每一個(gè)位都有自己的通道,且每一個(gè)字節(jié)中的所有位都能同時(shí)用來(lái)傳輸,故傳輸速度較快,但由于并行傳輸所需的通道數(shù)(I/O引腳)較多,所以?xún)r(jià)格較貴。因此一般僅限于短距離傳輸之用。
串行傳輸則是將數(shù)據(jù)拆成一個(gè)位接一個(gè)位的方式傳送,接收時(shí)再重新組合,即傳輸?shù)臄?shù)據(jù)其字節(jié)中的每一個(gè)位必須沿著同一條通道依序傳輸,目前串行傳輸?shù)慕涌谥饕蠻ART、SPI及I2C。
通用異步收發(fā)器(Universal Asynchronous Receiver Transmitter,UART),是微處理器和外部進(jìn)行通信的重要接口部件,主要用于串并行數(shù)據(jù)轉(zhuǎn)換,雖然目前大部分的微處理器均有此模塊,但卻存有數(shù)據(jù)傳輸速率無(wú)法自動(dòng)和任意選擇的缺點(diǎn)。
至于SPI及I2C等接口模塊由于應(yīng)用不廣泛,若微處理器未加裝此模塊,將無(wú)法得到快速的數(shù)據(jù)傳輸。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種可節(jié)省可編程邏輯控制器的微處理器用于數(shù)據(jù)傳輸?shù)妮斎?輸出引腳,且可彈性調(diào)整數(shù)據(jù)傳輸速率的通信協(xié)議。
為實(shí)現(xiàn)述目的,本發(fā)明的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,是將作為主機(jī)的微處理器通過(guò)一輸入/輸出引腳來(lái)傳輸及接收數(shù)據(jù)信號(hào),再通過(guò)另一輸入/輸出引腳來(lái)傳輸時(shí)序信號(hào)。
作為從機(jī)的微處理器亦通過(guò)一輸入/輸出引腳來(lái)傳輸及接收數(shù)據(jù)信號(hào),再通過(guò)另一輸入/輸出引腳來(lái)接收時(shí)序信號(hào)。
數(shù)據(jù)信號(hào)則包括有一命令碼、一起始地址、一數(shù)據(jù)長(zhǎng)度及至少一個(gè)以上的數(shù)據(jù)本體所組成,每一個(gè)字符組均由八個(gè)數(shù)據(jù)位、一個(gè)校驗(yàn)位及一個(gè)響應(yīng)位所組成,其中命令碼的第一位至第四位用以決定數(shù)據(jù)的傳輸速率,第五位用以確認(rèn)傳輸速率,第六位至第八位用以定義數(shù)據(jù)的傳輸協(xié)議,第九位用以傳送一同位以檢查數(shù)據(jù)傳送時(shí)是否錯(cuò)誤,而第十位則為響應(yīng)位,用以確認(rèn)數(shù)據(jù)傳輸完整。
以下結(jié)合附圖進(jìn)一步說(shuō)明本發(fā)明的目的、構(gòu)造特征及其功能。
圖1是本發(fā)明的電路框圖;圖2是為本發(fā)明的數(shù)據(jù)信號(hào)格式示意圖;以及圖3是本發(fā)明的命令碼及時(shí)序信號(hào)示意圖。
具體實(shí)施例方式
圖1是本發(fā)明的電路框圖,如圖所示此可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法是將二微處理器11、12定義為主機(jī)(master)及從機(jī)(slave),且作為主機(jī)的微處理器11是通過(guò)一設(shè)于此微處理機(jī)11上的輸入/輸出(I/O)引腳13來(lái)向/從作為從機(jī)的微處理器12傳輸及接收數(shù)據(jù)信號(hào)21,再通過(guò)另一設(shè)于此微處理機(jī)11上的輸入/輸出(I/O)引腳14傳輸時(shí)序信號(hào)22至作為從機(jī)的微處理器12。
作為從機(jī)之微處理器12亦是通過(guò)一設(shè)于此微處理機(jī)12上的輸入/輸出(I/O)引腳15來(lái)向/從作為主機(jī)的微處理器11傳輸及接收數(shù)據(jù)信號(hào)21,再通過(guò)另一設(shè)于此微處理器12上的輸入/輸出(I/O)引腳16接收作為主機(jī)的微處理器11發(fā)出的時(shí)序信號(hào)22。
圖2是本發(fā)明的數(shù)據(jù)信號(hào)格式示意圖,如圖所示而上述數(shù)據(jù)信號(hào)21是由一命令碼31、一接續(xù)于此命令碼31的起始地址32、一接續(xù)于此起始地址32的數(shù)據(jù)長(zhǎng)度33及一接續(xù)于此數(shù)據(jù)長(zhǎng)度33的至少一個(gè)以上的數(shù)據(jù)本體34等字符組所組成,且各字符組均由8個(gè)數(shù)據(jù)位、1個(gè)校驗(yàn)位及1個(gè)響應(yīng)位等共10個(gè)位所組成。
命令碼31用以定義數(shù)據(jù)的初始值。
起始地址32用以定義數(shù)據(jù)的起始地址。
數(shù)據(jù)長(zhǎng)度33用以定義數(shù)據(jù)的長(zhǎng)度。
圖3是本發(fā)明的命令碼及時(shí)序信號(hào)示意圖,如圖所示命令碼31于數(shù)據(jù)尚未傳輸前是維持在1狀態(tài)(MARK),然后作為主機(jī)的微處理器11送出的第一位至第四位(b0至b3)固定為0101狀態(tài),作為從機(jī)的微處理器12通過(guò)時(shí)序信號(hào)22記錄各位的時(shí)間(t0至t2),接著當(dāng)作為主機(jī)的微處理器11送出第五位(b4)為0狀態(tài)(SPACE)時(shí),作為從機(jī)的微處理器12將依主機(jī)11送出第一位至第五位所需的時(shí)間(t0至t3)計(jì)算出數(shù)據(jù)的傳輸速率,并于主機(jī)11送出第六位(b5)時(shí),從機(jī)12通過(guò)時(shí)序信號(hào)再次確認(rèn)t4所需的時(shí)間是否與先前所計(jì)算出的數(shù)據(jù)傳輸速率相同。
若從機(jī)12判斷相同則繼續(xù)接收數(shù)據(jù),第六位至第八位(b5-b7)則用以定義主機(jī)11與從機(jī)12間之傳輸協(xié)議,若為000是十六位的讀出模式,011是八位的讀出模式,101是十六位的寫(xiě)入模式,110則是八位的寫(xiě)入模式。
第九位(b8)是校驗(yàn)位,用于傳送一個(gè)同位以檢查數(shù)據(jù)傳送時(shí)是否錯(cuò)誤,若第九位為0狀態(tài),則為偶同位檢查模式,若第九位為1狀態(tài),則為奇同位檢查模式。
第十位(b9)是從機(jī)響應(yīng)位,若第十位為1狀態(tài),則表示從機(jī)12已正確收到主機(jī)11信號(hào)可開(kāi)始傳送數(shù)據(jù),若第十位為0狀態(tài),則表示從機(jī)12未正確收到主機(jī)11信號(hào)。
綜上所述,本發(fā)明實(shí)具有下述優(yōu)點(diǎn)(一)、本發(fā)明的串行傳輸僅需利用到微處理器的兩根輸入/輸出(I/O)引腳即可進(jìn)行數(shù)據(jù)傳輸,一根輸入/輸出(I/O)引腳傳輸數(shù)據(jù)信號(hào),另一根輸入/輸出(I/O)引腳傳輸時(shí)序信號(hào),可大幅改善傳統(tǒng)并行傳輸需使用過(guò)多引腳的缺點(diǎn)。
(二)、本發(fā)明可通過(guò)命令碼的定義來(lái)決定兩微處理機(jī)間的數(shù)據(jù)傳輸速率,并可彈性調(diào)整起始地址為八位地址或十六位地址。
以上所述僅為本發(fā)明的較佳實(shí)施例,并非用來(lái)限定本發(fā)明的實(shí)施范圍;凡根據(jù)本發(fā)明所作的均等變化與修飾,皆應(yīng)涵蓋于本發(fā)明范圍之內(nèi)。
權(quán)利要求
1.一種可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,用于二個(gè)分別工作為主機(jī)及從機(jī)的微處理器,其特征在于該主機(jī)及該從機(jī)分設(shè)有二相對(duì)應(yīng)的輸入/輸出(I/O)引腳,則該主機(jī)及該從機(jī)分別通過(guò)其一的輸入/輸出(I/O)引腳來(lái)傳輸及接收一數(shù)據(jù)信號(hào),并分別通過(guò)另一輸入/輸出(I/O)引腳來(lái)傳輸一時(shí)序信號(hào)至該從機(jī)接收。
2.如權(quán)利要求1所述的一種可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述的數(shù)據(jù)信號(hào)包括有下列字符組一命令碼,定義了數(shù)據(jù)的初始值;一起始地址,接續(xù)于該命令碼,定義數(shù)據(jù)的起始地址;一數(shù)據(jù)長(zhǎng)度,接續(xù)于該起始地址,定義數(shù)據(jù)的長(zhǎng)度;以及至少一個(gè)以上的數(shù)據(jù)本體,接續(xù)于該數(shù)據(jù)長(zhǎng)度。
3.如權(quán)利要求2所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的字符組是由八個(gè)數(shù)據(jù)位、一個(gè)校驗(yàn)位及一個(gè)響應(yīng)位所組成。
4.如權(quán)利要求2所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼的第一位至第四位用以決定數(shù)據(jù)的傳輸速率。
5.如權(quán)利要求2所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼的第五位用以確認(rèn)傳輸速率。
6.如權(quán)利要求2所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼的第六位至第八位用以定義數(shù)據(jù)的傳輸協(xié)議。
7.如權(quán)利要求6所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼第六位至第八位若為000狀態(tài),則為十六位讀出模式。
8.如權(quán)利要求6所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼第六位至第八位若為011狀態(tài),則為八位讀出模式。
9.如權(quán)利要求6所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼第六位至第八位若為101狀態(tài),則為十六位寫(xiě)入模式。
10.如權(quán)利要求6所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼第六位至第八位若為110狀態(tài),則為八位寫(xiě)入模式。
11.如權(quán)利要求2所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼的第九位是校驗(yàn)位,即通過(guò)傳送一同位以檢查數(shù)據(jù)傳送時(shí)是否錯(cuò)誤。
12. 如權(quán)利要求2所述的可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,其特征在于所述數(shù)據(jù)信號(hào)的命令碼的第十位是響應(yīng)位,用以確認(rèn)數(shù)據(jù)傳輸完整。
全文摘要
一種可編程邏輯控制器微處理器間的數(shù)據(jù)傳輸方法,是利用微處理器的一輸入/輸出引腳傳輸數(shù)據(jù)信號(hào),再利用另一輸入/輸出引腳傳輸時(shí)序信號(hào),而數(shù)據(jù)信號(hào)的格式則由一命令碼、一起始地址、一數(shù)據(jù)長(zhǎng)度及至少一個(gè)以上的數(shù)據(jù)本體等字符組所組成,其中每一個(gè)字符組由八個(gè)數(shù)據(jù)位、一個(gè)校驗(yàn)位及一個(gè)響應(yīng)位所組成。
文檔編號(hào)G06F9/315GK1567185SQ03147249
公開(kāi)日2005年1月19日 申請(qǐng)日期2003年7月10日 優(yōu)先權(quán)日2003年7月10日
發(fā)明者杜俊諺 申請(qǐng)人:臺(tái)達(dá)電子工業(yè)股份有限公司