TWI761008B - 可編程串列輸入輸出控制器、操作系統及方法 - Google Patents
可編程串列輸入輸出控制器、操作系統及方法 Download PDFInfo
- Publication number
- TWI761008B TWI761008B TW109146775A TW109146775A TWI761008B TW I761008 B TWI761008 B TW I761008B TW 109146775 A TW109146775 A TW 109146775A TW 109146775 A TW109146775 A TW 109146775A TW I761008 B TWI761008 B TW I761008B
- Authority
- TW
- Taiwan
- Prior art keywords
- level
- input
- output
- pin
- timing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
Abstract
一種可編程串列輸入輸出控制器,耦接於一外部電路與一微控制器之間,並包括一計時電路、一腳位控制器以及一程序控制器。計時電路用以執行一計時操作。腳位控制器耦接外部電路,並包括一輸出接腳。輸出接腳用以提供一輸出信號予外部電路。在一輸出模式下,程序控制器提供一初始位準予輸出接腳,並命令計時電路執行計時操作。當計時電路執行計時操作的時間達一第一發送時間時,程序控制器反轉輸出接腳的位準,並命令計時電路再次執行計時操作。當計時電路再次執行計時操作的時間達一第二發送時間時,程序控制器反轉輸出接腳的位準。
Description
本發明係有關於一種控制器,特別是有關於一種可編程串列輸入資料的控制器。
一般常見的傳輸方式包括串列傳輸及並列傳輸。由於串列傳輸的穩定度較高,並且介面協定(interface protocol)多樣化,故較常被使用。為了接收串列資料,晶片通常具有一相對應的接收器。通用串列匯流排(Universal Serial Bus;USB)接收器及積體電路介接匯流排(Inter Integrated Circuit Bus;I2C)接收器是常見的接收器。
然而,每一接收器只能接收相對應的串列資料。舉例而言, USB接收器只能接收符合USB介面協定的串列資料,而無法接收符合I2C介面協定的串列資料。同樣地,I2C接收器只能接收符合I2C介面協定的串列資料,而無法接收符合USB介面協定的串列資料。
本發明之一實施例提供一種可編程串列輸入輸出控制器,耦接於一外部電路與一微控制器之間,並包括一計時電路、一腳位控制器以及一程序控制器。計時電路用以執行一計時操作。腳位控制器耦接外部電路,並包括一輸入接腳以及一輸出接腳。輸入接腳用以接收來自外部電路的一輸入信號。輸出接腳用以提供一輸出信號予外部電路。程序控制器耦接於腳位控制器與微控制器之間,並操作於一輸出模式或是一輸入模式。在輸出模式下,程序控制器提供一初始位準予輸出接腳,並命令計時電路執行計時操作。當計時電路執行計時操作的時間達一第一發送時間時,程序控制器反轉輸出接腳的位準,並命令計時電路再次執行計時操作。當計時電路再次執行計時操作的時間達一第二發送時間時,程序控制器反轉輸出接腳的位準。在輸入模式下,程序控制器解碼輸入信號,用以產生一解碼結果予微控制器。
本發明另提供一種操作系統,包括一外部電路、一微控制器以及一可編程串列輸入輸出控制器。外部電路具有一發送端以及一接收端。發送端用以提供一輸入信號。接收端用以接收一輸出信號。微控制器執行一輸出程序或是一輸入程序。可編程串列輸入輸出控制器包括一計時電路、一腳位控制器以及一程序控制器。計時電路用以執行一計時操作。腳位控制器耦接外部電路,並包括一輸入接腳以及一輸出接腳。 輸入接腳用以接收輸入信號。輸出接腳用以輸出輸出信號。程序控制器耦接於腳位控制器與微控制器之間。當微控制器執行輸出程序時,程序控制器提供一初始位準予輸出接腳,並命令計時電路執行計時操作。當計時電路執行計時操作的時間達一第一發送時間時,程序控制器反轉輸出接腳的位準,並命令計時電路再次執行計時操作。當計時電路再次執行計時操作的時間達一第二發送時間時,程序控制器反轉輸出接腳的位準。當微控制器執行輸入程序時,程序控制器解碼輸入信號,用以產生一解碼結果予微控制器。
本發明另提供一種操作方法,用以編程一串列輸入資料。本發明之操作方法包括,設定一輸出接腳的位準等於一初始位準;執行一計時操作;判斷計時操作的執行時間是否達一第一發送時間;當計時操作的執行時間達第一發送時間時,反轉輸出接腳的位準,並重新執行計時操作;在重新執行計時操作後,判斷計時操作的執行時間是否達一第二發送時間;以及當計時操作的執行時間達第二發送時間,反轉輸出接腳的位準。輸出接腳的位準構成串列輸出資料。
本發明之操作方法可經由本發明之可編程串列輸入輸出控制器來實作,其為可執行特定功能之硬體或韌體,亦可以透過程式碼方式收錄於一紀錄媒體中,並結合特定硬體來實作。當程式碼被電子裝置、處理器、電腦或機器載入且執行時,電子裝置、處理器、電腦或機器變成用以實行本發明之可編程串列輸入輸出控制器或操系系統。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出實施例,並配合所附圖式,做詳細之說明。本發明說明書提供不同的實施例來說明本發明不同實施方式的技術特徵。其中,實施例中的各元件之配置係為說明之用,並非用以限制本發明。另外,實施例中圖式標號之部分重覆,係為了簡化說明,並非意指不同實施例之間的關聯性。
第1圖為本發明之操作系統的示意圖。如圖所示,操作系統100包括一外部電路102以及一處理電路104。外部電路102具有一輸入接腳RX2以及一輸出接腳TX2。輸出接腳TX2用以提供一輸入信號SIN。輸入接腳RX2用以接收一輸出信號SOUT。在一可能實施例中,輸入信號SIN及輸出信號SOUT為串列信號。舉例而言,輸入信號SIN及輸出信號SOUT可能符合一I2C介面協定或是一USB介面協定。另外,本發明並不限定外部電路102的架構。外部電路102具有至少一微處理器(micro-processor)、至少一微控制器(micro-controller)以及至少一記憶體(memory)。
處理電路104提供輸出信號SOUT予外部電路102。在本實施例中,處理電路104可提供各種不同的介面協定的輸出信號SOUT,用以適應不同的外部電路。在一可能實施例中,處理電路104可能根據不同的時間設定值,控制輸出信號SOUT的位準,使得輸出信號SOUT符合不同的介面協定。由於時間設定值並不會佔用太大的儲存空間,故可增加處理電路104的記憶體的可使用空間。
在其它實施例中,處理電路104接收並處理輸入信號SIN。在此例中,處理電路104分析輸入信號SIN,用以一分析結果,再根據分析結果而動作。由於處理電路104儲存分析結果,而不是儲存輸入信號SIN,故可增加處理電路104內部可使用的記憶體空間。
在本實施例中,處理電路104包括一可編程串列輸入輸出控制器(programmable serial I/O controller)106以及一微控制器(MCU)108。微控制器108執行一輸出程序或是一輸入程序。當微控制器108執行一輸出程序時,微控制器108提供至少一時間設定值予可編程串列輸入輸出控制器106,並命令可編程串列輸入輸出控制器106進入一輸出模式。在輸出模式下,可編程串列輸入輸出控制器106根據微控制器108所提供的時間設定值,調整輸出信號SOUT的位準。此時,輸出信號SOUT作為一串列輸出資料。
在其它實施例中,當微控制器108執行一輸入程序時,微控制器108命令可編程串列輸入輸出控制器106進入一輸入模式。在輸入模式下,可編程串列輸入輸出控制器106接收並處理輸入資料SIN,並提供處理結果予微控制器108。微控制器108根據處理結果而動作。在此例中,輸入資料SIN係為一串列輸入資料,符合某一介面協定,如I2C或USB。不論輸入資料SIN符合哪種介面協定,可編程串列輸入輸出控制器106根據輸出資料SIN的位準,便可推知輸入資料SIN符合哪種介面協定。
在本實施例中,可編程串列輸入輸出控制器106包括一腳位控制器110、一計時電路112以及一程序控制器114。腳位控制器110耦接外部電路102,並包括一輸入接腳RX1以及一輸出接腳TX1。輸入接腳RX1用以接收輸入信號SIN。輸出接腳TX1用以提供輸出信號SOUT。
計時電路112用以執行一計時操作。本發明並不限定計時電路112的架構。在一可能實施例中,計時電路112具有一或更多計時器(timer)。在另一可能實施例中,計時電路112儲存來自微控制器108的時間設定值。在此例中,計時電路112可能直接接收來自微控制器108的時間設定值,或是透過程序控制器114,間接地接收來自微控制器108的時間設定值。
程序控制器114耦接於腳位控制器110與微控制器108之間。當微控制器108執行一輸出程序時,程序控制器114進入一輸出模式。在輸出模式下,程序控制器114提供一初始位準(如一高位準)予輸出接腳TX1,並命令計時電路112開始執行計時操作。當計時電路112發生上溢(overflow)或是下溢(underflow)時,表示計時電路112執行計時操作的時間達一第一發送時間(如1秒)。因此,程序控制器114反轉(或反置)輸出接腳TX1的位準(如由初始位準改變至一第一位準),並命令計時電路112重新執行計時操作。當計時電路112再次發生上溢或是下溢時,表示計時電路112重新執行計時操作的時間達一第二發送時間(如2秒)。因此,程序控制器114再次反轉輸出接腳的位準(如由第一位準改變至一第二位準),並命令計時電路112重新執行計時操作。
在一可能實施例中,初始位準相對於第一位準。舉例而言,當初始位準為一高位準時,第一位準可能是一低位準。當初始位準為一低位準時,第一位準可能是一高位準。在此例中,第二位準相同於初始位準。在另一可能實施例中,程序控制器114反轉輸出接腳TX1的位準後,先重置計時電路112,再觸發計時電路112,使得計時電路112重新執行計時操作。在一些實施例中,計時電路112根據一時脈信號CLK,執行計時操作。在此例中,時脈信號CLK由程序控制器114,但並非用以限制本發明。在其它實施例中,時脈信號CLK由微控制器108所提供。
本發明並不限定第一發送時間及第二發送時間的來源。在一可能實施例中,第一發送時間及第二發送時間係由微控制器108所提供,即為上述時間設定值。第一發送時間可能相同或不同於第二發送時間。在其它實施例中,微控制器108寫入更多的發送時間(或稱時間設定值)於計時電路112中。在此例中,計時電路112執行計時操作的次數相同於發送時間的數量。在一可能實施例中,計時電路112依序讀取每一發送時間,並根據每一發送時間,執行計時操作。在一些實施例中,發送時間係儲存於程序控制器114中。在此例中,程序控制器114根據每一發送時間,觸發計時電路112,使得計時電路112多次執行計時操作。程序控制器114觸發計時電路112的次數相同於發送時間的數量。在其它實施例中,計時電路112可能具有複數計時器。每一計時器根據不同的發送時間,執行計時操作。在此例中,任一計時器執行計時操作的時間可能相同或不同於另一計時器執行計時操作的時間。在一些實施例中,程序控制器114可能重複讀取複數發送時間,用以重複發送相同的輸出信號SOUT予外部電路102。
在其它實施例中,程序控制器114透過一匯流排116,與微控制器108溝通,如接收來自微控制器108的發送時間,或是提供處理結果予微控制器108。在一些實施例中,程序控制器114更提供一中斷信號INT予微控制器108。在此例中,微控制器108根據中斷信號INT,得知程序控制器114已提供輸出信號SOUT予外部電路102,或是程序控制器114已完全接收來自外部電路102的輸入信號SIN。
當微控制器108執行一輸入程序時,程序控制器114進入一輸入模式。在輸入模式下,程序控制器114記錄輸入接腳RX1的一初始位準,並判斷輸入接腳RX1的位準是否發生變化。當輸入接腳RX1的位準發生變化時,程序控制器114命令計時電路112開始執行計時操作。在計時電路112執行計時操作的同時,程序控制器114判斷輸入接腳RX1的位準是否再次發生變化。當輸入接腳RX1的位準再次發生變化時,程序控制器114命令計時電路112停止執行計時操作。此時,程序控制器114記錄計時電路112執行計時操作的一第一執行時間,並命令計時電路112重新執行計時操作。在計時電路112執行計時操作的同時,程序控制器114繼續判斷輸入接腳RX1的位準是否發生變化。
當輸入接腳RX1的位準再次發生變化時,程序控制器114命令計時電路112停止執行計時操作。此時,程序控制器114記錄計時電路112執行計時操作的一第二執行時間,並命令計時電路112重新執行計時操作。在計時電路112執行計時操作的同時,程序控制器114繼續判斷輸入接腳RX1的位準是否發生變化。
然而,如果輸入接腳RX1的位準維持不變,並且維持時間達一預設時間時,程序控制器114發送中斷信號INT。在接收到中斷信號INT後,微控制器108根據程序控制器114所檢測的輸入接腳RX1的初始位準以及程序控制器114所記錄的每一執行時間,還原輸入信號SIN(即串列輸入資料)的波形,並根據還原結果,進行相對應的動作,如存取資料。
在其它實施例中,在輸入模式下,程序控制器114記錄輸入接腳RX1的一初始位準,並判斷輸入接腳RX1的位準是否發生變化。當輸入接腳RX1的位準發生變化時,程序控制器114命令計時電路1112執行一計時操作。當計時電路112執行計時操作的時間達一取樣時間時,程序控制器114偵測並記錄輸入接腳RX1的位準,用以產生一第一取樣值。然後,程序控制器114命令計時電路112重新執行計時操作。在此例中,當計時電路112執行計時操作的時間達一位元時間(bit time)時,程序控制器114偵測並記錄輸入接腳RX1的位準,用以產生一第二取樣值。
在一可能實施例中,取樣時間及位元時間係儲存於計時電路112中。在此例中,位元時間大於取樣時間。取樣時間及位元時間可能由微控制器108事先儲存於計時電路112或是程序控制器114中。在一些實施例中,在得到第二取樣值後,每當計時電路112執行計時操作的時間達位元時間時,程序控制器114便偵測並記錄輸入接腳RX1的位準,用以產生一相對應的取樣值,直到程序控制器114所記錄的取樣值的數量等於達一預設值。
在本實施例中,程序控制器114產生的取樣值的數量與輸入信號SIN的位元數量有關。舉例而言,當設計人員事先得知處理電路104所搭配的外部電路102所提供的輸入信號SIN表示8位元的串列資料時,設計人員事先儲存一預設值於微控制器108中。微控制器108根據該預設值,命令程序控制器114進行八次的取樣,用以產生八筆取樣值。當程序控制器114完成取樣操作後,程序控制器114可能發送中斷信號INT通知微控制器108。因此,微控制器108根據程序控制器114所檢測的輸入接腳RX1的初始位準以及八次的取樣值,還原輸入信號SIN(即串列輸入資料)的波形,並根據還原結果,進行相對應的動作,如存取資料。
第2圖為本發明之可編程串列輸入輸出控制器106產生輸出信號SOUT的控制時序圖。當微控制器108執行一輸出程序時,程序控制器114進入一輸出模式。在輸出模式下,程序控制器114於一初始時間點202,提供一初始位準予輸出接腳TX1。在本實施例中,輸出接腳TX1的輸出信號SOUT的初始位準為一高位準。此時,程序控制器114重置並觸發計時電路112,用以命令計時電路112開始執行計時操作。
在一可能實施例中,計時電路112計數時脈信號CLK的脈衝數量。在時間點204,計時電路112所計數的時脈信號CLK的脈衝數量等於一第一預設值。因此,計時電路112發生上溢或下溢。此時,由於計時電路112執行計時操作的時間達一第一發送時間,故程序控制器114反轉輸出信號SOUT的位準(如由初始位準改變至一第一位準)。在本實施例中,第一位準為一低位準。此時,程序控制器114重置計時電路112,用以解除上溢或下溢。程序控制器114再次觸發計時電路112,用以命令計時電路112重新執行計時操作。在一可能實例中,計時電路112重新計數時脈信號CLK的脈衝數量。
在時間點206,計時電路112所計數的時脈信號CLK的脈衝數量等於一第二預設值,表示計時電路112重新執行計時操作的時間達一第二發送時間(如2秒)。因此,程序控制器114反轉輸出信號SOUT的位準,如由低位準改變至一高位準。此時,程序控制器114重置並觸發計時電路112,用以命令計時電路112重新計數時脈信號CLK的脈衝數量。
在時間點208,時脈信號CLK的脈衝數量等於一第三預設值,表示計時電路112執行計時操作的時間達一第三發送時間。因此,程序控制器114反轉輸出信號SOUT的位準,如由高位準改變至低位準。此時,程序控制器114重置並觸發計時電路112,用以命令計時電路112重新計數時脈信號CLK的脈衝數量。
在時間點210,時脈信號CLK的脈衝數量等於一第四預設值,表示計時電路112重新執行計時操作的時間達一第四發送時間時,程序控制器114反轉輸出信號SOUT的位準,如由低位準改變至高位準。此時,程序控制器114重置並觸發計時電路112,用以命令計時電路112重新計數時脈信號CLK的脈衝數量。
在一可能實施例中,計時電路112執行計時操作的次數相同於微控制器108所提供的發送時間的數量。由於發送時間並不會佔用太多的記憶空間,故不需設置大容量的記憶體於可編程串列輸入輸出控制器106中,因而減少元件成本。
第3圖為本發明之可編程串列輸入輸出控制器106接收輸入信號SIN的控制時序圖。當微控制器108執行一輸入程序時,程序控制器114進入一輸入模式。在輸入模式下,程序控制器114於一初始時間點302,記錄輸入接腳RX1所接收的輸入信號SIN的一初始位準。在本實施例中,輸入信號SIN的初始位準為一高位準。此時,程序控制器114命令計時電路112開始執行計時操作,並判斷輸入信號SIN的位準是否發生變化。
在一可能實施例中,計時電路112計數時脈信號CLK的脈衝數量。程序控制器114根據計時電路112所計數的時脈信號CLK的脈衝數量,便可得知計時電路112執行計時操作的一執行時間。舉例而言,當計時電路112所計數的時脈信號CLK的脈衝數量愈大時,表示計時電路112執行計時操作的一執行時間愈長。
在時間點304,輸入信號SIN的位準發生變化,如由初始位準變化至一第一位準(如低位準)。因此,程序控制器114命令計時電路112停止執行計時操作。此時,程序控制器114記錄計時電路112在時間點302與304間所執行的計時操作的時間(稱一第一執行時間)。在此例中,計時電路112從時間點302開始計數時脈信號CLK的脈衝數量,並在時間點304停止計數時脈信號CLK的脈衝數量,故程序控制器114只要根據計時電路112所計數的時脈信號CLK的脈衝數量,便可得知計時電路112在時間點302與304間執行計時操作的時間。
在其它實施例中,在時間點304,程序控制器114重置計時電路112,用以重置計時電路112的計數值。然後,程序控制器114觸發計時電路112,使得計時電路112重新執行計時操作。在計時電路112執行計時操作的同時,程序控制器114判斷輸入信號SIN的位準是否再次發生變化。
在時間點306,輸入信號SIN的位準再次發生變化,故程序控制器114命令計時電路112停止執行計時操作。在本實施例中,輸入信號SIN的位準由第一位準(如低位準)變化至一第二位準(如高位準)。此時,程序控制器114記錄計時電路112於時間點304與時間點306間所執行的計時操作的時間(或稱一第二執行時間)。然後,程序控制器114重置並觸發計時電路112,使得計時電路112重新開始計時操作。程序控制器114判斷輸入信號SIN的位準是否再次發生變化。
在時間點308,輸入信號SIN的位準發生變化。因此,程序控制器114命令計時電路112停止執行計時操作。在本實施例中,輸入信號SIN的位準由第二位準(如高位準)變化至第一位準(如低位準)。程序控制器114記錄計時電路112於時間點306至時間點308間執行計時操作的時間(或稱一第三執行時間)。在時間點308,程序控制器114重置並觸發計時電路112,用以命令計時電路112重新執行計時操作。程序控制器114判斷輸入信號SIN的位準是否再次發生變化。
在時間點310,輸入信號SIN的位準再次發生變化。因此,程序控制器114命令計時電路112停止執行計時操作。在本實施例中,輸入信號SIN的位準由第一位準(如低位準)變化至第二位準(如高位準)。此時,程序控制器114記錄計時電路112於時間點308與時間點310之間執行計時操作的時間(或稱一第四執行時間)。在時間點310,程序控制器114重置並觸發計時電路112,用以命令計時電路112重新執行計時操作。在計時電路112執行計時操作的同時,程序控制器114判斷輸入信號SIN的位準是否再次發生變化。
在一些實施例中,當輸入信號SIN的位準維持不變,並且維持時間達一預設時間時,程序控制器114發送中斷信號INT。在接收到中斷信號INT後,微控制器108根據程序控制器114所檢測的輸入信號SIN的初始位準以及程序控制器114所記錄的每一執行時間,還原輸入信號SIN(即串列輸入資料)的波形,並根據還原結果,進行相對應的動作,如存取資料。
在本實施例中,可編程串列輸入輸出控制器106儲存計時電路112的執行時間,而不是儲存輸入信號SIN。由於執行時間所佔用的記憶空間小於輸入信號SIN,故可增加可編程串列輸入輸出控制器106的可使用記憶空間。再者,可編程串列輸入輸出控制器106也不需要設置大容量的記憶體,節省元件成本。
第4圖為本發明之可編程串列輸入輸出控制器106接收輸入信號SIN的另一控制時序圖。當微控制器108執行一輸入程序時,程序控制器114進入一輸入模式。在輸入模式下,程序控制器114於一初始時間點402,記錄輸入信號SIN的一初始位準。在本實施例中,輸入信號SIN的初始位準為一高位準。此時,程序控制器114命令計時電路112開始執行計時操作,並判斷輸入信號SIN的位準是否發生變化。
在時間點404,輸入信號SIN的位準發生變化。因此,程序控制器114命令計時電路112執行計時操作。在一可能實施例中,程序控制器114先重置計時電路112,然後再觸發計時電路112,使得計時電路112開始計時操作。在一些實施例中,計時電路112係計數時脈信號CLK的脈衝數量。在此例中,程序控制器114根據計時電路112所計數的時脈信號CLK的脈衝數量,判斷計時電路112執行計時操作的時間是否達一取樣時間。
在時間點406,計時電路112執行計時操作的時間達取樣時間。因此,程序控制器114偵測並記錄輸入信號SIN的位準,用以產生一第一取樣值。在本實施例中,由於輸入信號SIN的位準為一第一位準(如低位準),故程序控制器114設定第一取樣值等於一第一數值(如0)。此時,程序控制器114命令計時電路112重新執行計時操作。在一可能實施例中,程序控制器114再次重置計時電路112,然後觸發計時電路112,使得計時電路112開始計時操作。
在時間點408,計時電路112執行計時操作的時間達一位元時間。因此,程序控制器114偵測並記錄輸入信號SIN的位準,用以產生一第二取樣值。在本實施例中,由於輸入信號SIN的位準為一第二位準(如高位準),故程序控制器114設定第二取樣值等於一第二數值(如1)。此時,程序控制器114命令計時電路112重新執行計時操作。在一可能實施例中,程序控制器114再次重置計時電路112,然後觸發計時電路112,使得計時電路112開始計時操作。
在時間點410,計時電路112執行計時操作的時間達位元時間。因此,程序控制器114偵測並記錄輸入信號SIN的位準,用以產生一第三取樣值。在本實施例中,由於輸入信號SIN的位準為第一位準,故程序控制器114設定第三取樣值等於第一數值。此時,程序控制器114命令計時電路112重新執行計時操作。在一可能實施例中,程序控制器114再次重置計時電路112,然後觸發計時電路112,使得計時電路112開始計時操作。
在一可能實施例中,取樣時間及位元時間係儲存於計時電路112中。在此例中,位元時間大於取樣時間。在本實施例中,在得到第一取樣值後,每當計時電路112執行計時操作的時間達位元時間時,程序控制器114便偵測並記錄輸入接腳RX1的位準,用以產生一相對應的取樣值。
在本實施例中,程序控制器114產生的取樣值的數量與輸入信號SIN的位元數量有關。舉例而言,當設計人員事先得知處理電路104所搭配的外部電路102所提供的輸入信號SIN表示8位元的串列資料時,設計人員事先儲存一設定值於微控制器108中。微控制器108根據該設定值,命令程序控制器114進行八次的取樣,用以產生八筆取樣值。當程序控制器114完成取樣操作後,程序控制器114可能發送中斷信號INT通知微控制器108。因此,微控制器108根據程序控制器114所檢測的輸入接腳RX1的初始位準以及取樣值,還原輸入信號SIN(即串列輸入資料)的波形,並根據還原結果,進行相對應的動作,如存取資料。
第5圖為本發明之操作方法的一可能流程示意圖。第5圖的操作方法係用以編程一串列輸出資料,並可應用於第1圖的控制電路104之中。首先,設定一輸出接腳的位準等於一初始位準(步驟S511)。在一可能實施例中,輸出接腳用以提供串列輸出資料。
接著,執行一計時操作(步驟S512)。在一可能實施例中,步驟S512係觸發一計數器(counter),命令該計數器計數一時脈信號的脈衝數量。在此例中,在觸發該計數器前,步驟S512先重置該計數器,用以初始化計數器的計數值。
然後,判斷計時操作的執行時間是否達一第一發送時間(步驟S513)。當計時操作的執行時間未達第一發送時間時,回到步驟S513。當計時操作的執行時間達第一發送時間時,反轉輸出接腳的位準(步驟S514)。舉例而言,在步驟S511中,如果輸出接腳的初始位準為一高位準,則步驟S514係將輸出接腳的位準設定為一低位準。同樣地,在步驟S511中,如果輸出接腳的初始位準為一低位準,則步驟S514係將輸出接腳的位準設定為一高位準。在本實施例中,步驟S514的輸出接腳的位準係相對於步驟S511的輸出接腳的位準。
接著,重新執行計時操作(步驟S515)。由於步驟S515的操作相似於步驟S512的操作,故不再贅述。然後,判斷計時操作的執行時間是否達一第二發送時間(步驟S516)。當計時操作的執行時間未達第二發送時間時,回到步驟S516,繼續監控計時操作的執行時間。當計時操作的執行時間達第二發送時間時,反轉輸出接腳的位準(步驟S517)。舉例而言,在步驟S514中,如果輸出接腳的位準為一低位準,則步驟S517係將輸出接腳的位準設定為一高位準。同樣地,在步驟S514中,如果輸出接腳的初始位準為一低位準,則步驟S517係將輸出接腳的位準設定為一高位準。在本實施例中,步驟S517的輸出接腳的位準係相對於步驟S514的輸出接腳的位準,並相同於步驟S511的輸出接腳的位準。在一些實施例中,第一發送時間可能相同或不同於第二發送時間。
在一可能實施例中,藉由控制輸出接腳的位準,便可產生一串列輸出資料。另外,在第5圖中,步驟S514及S517反轉輸出接腳的位準。在其它實施例中,輸出接腳的位準被反轉更多次。輸出接腳的位準被反轉的次數與串列輸出資料的內容以及位元數量有關。另外,第一及第二發送時間與串列輸出資料的內容有關。
第6圖為本發明之操作方法的另一可能流程示意圖。第6圖的操作方法係用以編程一串列輸入資料,並可應用於第1圖的控制電路104之中。首先,記錄一輸入接腳的一初始位準(步驟S611),並判斷輸入接腳的位準是否發生變化(步驟S612)。
當輸入接腳的位準發生變化時,執行一計時操作(步驟S613)。 在一可能實施例中,步驟S613係觸發一計數器,命令該計數器計數一時脈信號的脈衝數量。在此例中,在觸發該計數器前,步驟S613先重置該計數器,用以初始化計數器的計數值。
然後,判斷輸入接腳的位準是否再次發生變化(步驟S614)。當輸入接腳的位準並未變化時,回到步驟S614,繼續監控輸入接腳的位準是否再次發生變化。當輸入接腳的位準再次發生變化時,停止執行計時操作,並記錄計時操作的一執行時間(步驟S615)。接著,判斷輸入接腳的位準的維持時間是否超過一預設時間(步驟S616)。當輸入接腳的位準維持不變,並且維持時間超過預設時間時,根據輸入接腳的初始位準及執行時間,執行一編碼操作,用以產生一串列輸入資料(步驟S617)。
當輸入接腳的位準的維持時間並未超過一預設時間時,回到步驟S614,繼續監控輸入接腳的位準是否再次發生變化,並在輸入接腳的位準再次發生變化時,記錄計時操作的執行時間。在一些實施例中,當輸入接腳的位準的變化次數愈多時,則步驟S615所記錄的執行時間愈多。
第7圖為本發明之操作方法的另一可能流程示意圖。第7圖的操作方法係用以編程一串列輸入資料,並可應用於第1圖的控制電路104之中。首先,記錄一輸入接腳的一初始位準(步驟S711),並判斷輸入接腳的位準是否發生變化(步驟S712)。當輸入接腳的位準未發生變化時,回到步驟S712。當輸入接腳的位準發生變化時,執行一計時操作(步驟S713)。 由於步驟S713相似於步驟S613,故不再贅述。
判斷執行計時操作的時間是否達一取樣時間(步驟S714)。當執行計時操作的時間未達一取樣時間時,回到步驟S714。當執行計時操作的時間達一取樣時間時,偵測並記錄輸入接腳的位準,用以產生一第一取樣值(步驟S715)。在一可能實施例中,如果輸入接腳為一低位準,則第一取樣值為0。如果輸入接腳為一高位準,則第一取樣值為1。
然後,再次執行計時操作(步驟S716)。由於步驟S716相似於步驟S512及S613,故不再贅述。接著,判斷執行計時操作的時間是否達一位元時間(步驟S717)。當執行計時操作的時間未達一位元時間時,回到步驟S717。當執行計時操作的時間達一位元時間時,偵測記錄輸入接腳的位準,用以產生一第二取樣值(步驟S718)。在一可能實施例中,取樣時間小於位元時間(bit time)。
然後,再次執行計時操作(步驟S719)。由於步驟S719相似於步驟S716,故不再贅述。接著,判斷輸入接腳的位準的維持時間是否超過一預設時間(步驟S720)。當輸入接腳的位準的維持時間並未超過一預設時間時,回到步驟S717,繼續監控執行計時操作的時間是否達一位元時間。然而,當輸入接腳的位準維持不變,並且維持時間超過預設時間時,根據輸入接腳的初始位準、取樣時間及位元時間,進行一編碼操作,用以產生一串列輸入資料(步驟S721)。
本發明之操作方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之控制電路。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之控制電路。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
除非另作定義,在此所有詞彙(包含技術與科學詞彙)均屬本發明所屬技術領域中具有通常知識者之一般理解。此外,除非明白表示,詞彙於一般字典中之定義應解釋為與其相關技術領域之文章中意義一致,而不應解釋為理想狀態或過分正式之語態。雖然“第一”、“第二”等術語可用於描述各種元件,但這些元件不應受這些術語的限制。這些術語只是用以區分一個元件和另一個元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾。舉例來說,本發明實施例所述之系統、裝置或是方法可以硬體、軟體或硬體以及軟體的組合的實體實施例加以實現。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:操作系統
102:外部電路
104:處理電路
106:可編程串列輸入輸出控制器
108:微控制器
110:腳位控制器
112:計時電路
114:程序控制器
116:匯流排
RX1、RX2:輸入接腳
TX1、TX2:輸出接腳
CLK:時脈信號
INT:中斷信號
SIN:輸入信號
SOUT:輸出信號
202、204、206、08、210、302、304、306、308、310、402、404、406、408、410:時間點
S511~S517、S611~S617、S711~S721:步驟
第1圖為本發明之操作系統的示意圖。
第2圖為本發明之可編程串列輸入輸出控制器的控制時序圖。
第3圖為本發明之可編程串列輸入輸出控制器的另一控制時序圖。
第4圖為本發明之可編程串列輸入輸出控制器的另一控制時序圖。
第5圖為本發明之操作方法的一可能流程示意圖。
第6圖為本發明之操作方法的另一可能流程示意圖。
第7圖為本發明之操作方法的另一可能流程示意圖。
100:操作系統
102:外部電路
104:處理電路
106:可編程串列輸入輸出控制器
108:微控制器
110:腳位控制器
112:計時電路
114:程序控制器
116:匯流排
RX1、RX2:輸入接腳
TX1、TX2:輸出接腳
CLK:時脈信號
INT:中斷信號
SIN:輸入信號
SOUT:輸出信號
Claims (10)
- 一種可編程串列輸入輸出控制器,耦接於一外部電路與一微控制器之間,並包括:一計時電路,用以執行一計時操作;一腳位控制器,耦接該外部電路,並包括:一輸入接腳,用以接收來自該外部電路的一輸入信號,其中該輸入接腳未輸出任何信號予該外部電路;以及一輸出接腳,用以提供一輸出信號予該外部電路;以及一程序控制器,耦接於該腳位控制器與該微控制器之間,並操作於一輸出模式或是一輸入模式;其中;在該輸出模式下:該程序控制器提供一初始位準予該輸出接腳,並命令該計時電路執行該計時操作;當該計時電路執行該計時操作的時間達一第一發送時間時,該程序控制器反轉該輸出接腳的位準,並命令該計時電路再次執行該計時操作;當該計時電路再次執行該計時操作的時間達一第二發送時間時,該程序控制器反轉該輸出接腳的位準;在該輸入模式下:該程序控制器解碼該輸入信號,用以產生一解碼結果予該微控制器。
- 如請求項1之可編程串列輸入輸出控制器,其中該第 一發送時間不同於該第二發送時間。
- 如請求項1之可編程串列輸入輸出控制器,其中該第一發送時間及該第二發送時間儲存於該計時電路中。
- 如請求項1之可編程串列輸入輸出控制器,其中在該輸入模式下:該程序控制器記錄該輸入接腳的一初始位準,並判斷該輸入接腳的位準是否發生變化;當該輸入接腳的位準發生變化時,該程序控制器命令該計時電路開始執行該計時操作,並判斷該輸入接腳的位準是否再次發生變化;以及當該輸入接腳的位準再次發生變化時,該程序控制器命令該計時電路停止執行該計時操作,並記錄該計時電路執行該計時操作的一執行時間。
- 如請求項4之可編程串列輸入輸出控制器,其中該程序控制器提供該輸入接腳的該初始位準以及該執行時間予該微控制器。
- 如請求項4之可編程串列輸入輸出控制器,其中當該輸入接腳的位準維持不變,並且維持時間超過一預設時間時,該程序控制器提供該輸入接腳的該初始位準及該執行時間予該微控制器。
- 如請求項1之可編程串列輸入輸出控制器,其中在該輸入模式下:該程序控制器記錄該輸入接腳的一初始位準,並判斷該輸入接腳的位準是否發生變化; 當該輸入接腳的位準發生變化時,該程序控制器命令該計時電路執行該計時操作;當該計時電路執行該計時操作的時間達一取樣時間時,該程序控制器記錄該輸入接腳的位準,用以產生一第一取樣值,並命令該計時電路再次執行該計時操作;以及當該計時電路執行該計時操作的時間達一位元時間時,該程序控制器記錄該輸入接腳的位準,用以產生一第二取樣值。
- 一種操作系統,包括:一外部電路,具有一發送端以及一接收端,該發送端用以提供一輸入信號,該接收端用以接收一輸出信號;一微控制器,執行一輸出程序或是一輸入程序;以及一可編程串列輸入輸出控制器,包括:一計時電路,用以執行一計時操作;一腳位控制器,耦接該外部電路,並包括:一輸入接腳,用以接收該輸入信號,其中該輸入接腳未輸出任何信號予該外部電路;以及一輸出接腳,用以輸出該輸出信號;以及一程序控制器,耦接於該腳位控制器與該微控制器之間;其中;當該微控制器執行該輸出程序時,該程序控制器提供一初始位準予該輸出接腳,並命令該計時電路執行該計時操作;當該計時電路執行該計時操作的時間達一第一發送時間時,該程序控制器反轉該輸出接腳的位準,並命令該計時電路再次執行該計時操作; 當該計時電路再次執行該計時操作的時間達一第二發送時間時,該程序控制器反轉該輸出接腳的位準;當該微控制器執行該輸入程序時,該程序控制器解碼該輸入信號,用以產生一解碼結果予該微控制器。
- 一種操作方法,應用於一可編程串列輸入輸出控制器中,用以編程一串列輸入資料以及一串列輸出資料,該可編程串列輸入輸出控制器具有一輸入接腳以及一輸出接腳,該操作方法包括:設定該輸出接腳的位準等於一初始位準;執行一計時操作;判斷該計時操作的執行時間是否達一第一發送時間;當該計時操作的執行時間達該第一發送時間時,反轉該輸出接腳的位準,並重新執行該計時操作;在重新執行該計時操作後,判斷該計時操作的執行時間是否達一第二發送時間;當該計時操作的執行時間達該第二發送時間,反轉該輸出接腳的位準;以及記錄該輸入接腳的一初始位準,並判斷該輸入接腳的位準是否發生變化;其中該輸出接腳的位準構成該串列輸出資料;其中該初始位準係由一外部電路所提供,該輸入接腳不輸出任何信號予該外部電路。
- 如請求項9之操作方法,更包括:當該輸入接腳的位準發生變化時,執行該計時操作,並判斷該輸入接腳的位準是否再次發生變化; 當該輸入接腳的位準再次發生變化時,停止執行該計時操作,並記錄該計時操作的一執行時間;以及根據該輸入接腳的該初始位準及該執行時間,執行一編碼操作,用以產生該串列輸入資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109146775A TWI761008B (zh) | 2020-12-30 | 2020-12-30 | 可編程串列輸入輸出控制器、操作系統及方法 |
CN202111542726.4A CN114691582B (zh) | 2020-12-30 | 2021-12-16 | 可编程串列输入输出控制器、操作系统及方法 |
US17/563,735 US11615049B2 (en) | 2020-12-30 | 2021-12-28 | Programmable serial input-output controller, operation system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109146775A TWI761008B (zh) | 2020-12-30 | 2020-12-30 | 可編程串列輸入輸出控制器、操作系統及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI761008B true TWI761008B (zh) | 2022-04-11 |
TW202225870A TW202225870A (zh) | 2022-07-01 |
Family
ID=82118321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109146775A TWI761008B (zh) | 2020-12-30 | 2020-12-30 | 可編程串列輸入輸出控制器、操作系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11615049B2 (zh) |
CN (1) | CN114691582B (zh) |
TW (1) | TWI761008B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW321309U (en) * | 1994-04-18 | 1997-11-21 | Holtek Semiconductor Inc | Programmable micro controller |
WO2000055697A1 (en) * | 1999-03-15 | 2000-09-21 | Siemens Energy & Automation, Inc. | Programmable logic controller with short duration pulses detection capability |
CN101079017A (zh) * | 2006-05-24 | 2007-11-28 | 宏达国际电子股份有限公司 | 资料传输方法与其传输电路 |
TW200827958A (en) * | 2006-08-08 | 2008-07-01 | Siemens Energy & Automat | Devices, systems, and methods regarding a PLC |
CN101819559A (zh) * | 2010-03-12 | 2010-09-01 | 昆山三泰新电子科技有限公司 | 影音信号的usb介面转换装置 |
CN103793340A (zh) * | 2012-10-31 | 2014-05-14 | 开曼晨星半导体公司 | 串行数据处理器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4570215A (en) * | 1982-01-08 | 1986-02-11 | Omron Tateisi Electronics Co. | Input/output device for programmable controller |
JPH0549264A (ja) * | 1991-08-07 | 1993-02-26 | Fuji Electric Co Ltd | シーケンス処理機能付インバータ装置 |
CN101243424A (zh) * | 2005-08-22 | 2008-08-13 | Nxp股份有限公司 | 微控制器波形发生 |
CN101329663B (zh) * | 2008-07-31 | 2010-04-21 | 炬力集成电路设计有限公司 | 一种实现片上系统管脚分时复用的装置及方法 |
US20110208885A1 (en) * | 2010-02-25 | 2011-08-25 | Panasonic Corporation | Data bus control method and apparatus |
US10416703B2 (en) * | 2017-08-10 | 2019-09-17 | Ambiq Micro, Inc. | Counter/timer array for generation of complex patterns independent of software control |
TWI674752B (zh) * | 2018-12-03 | 2019-10-11 | 新唐科技股份有限公司 | 驅動保護電路及操作電路 |
-
2020
- 2020-12-30 TW TW109146775A patent/TWI761008B/zh active
-
2021
- 2021-12-16 CN CN202111542726.4A patent/CN114691582B/zh active Active
- 2021-12-28 US US17/563,735 patent/US11615049B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW321309U (en) * | 1994-04-18 | 1997-11-21 | Holtek Semiconductor Inc | Programmable micro controller |
WO2000055697A1 (en) * | 1999-03-15 | 2000-09-21 | Siemens Energy & Automation, Inc. | Programmable logic controller with short duration pulses detection capability |
CN101079017A (zh) * | 2006-05-24 | 2007-11-28 | 宏达国际电子股份有限公司 | 资料传输方法与其传输电路 |
TW200827958A (en) * | 2006-08-08 | 2008-07-01 | Siemens Energy & Automat | Devices, systems, and methods regarding a PLC |
CN101819559A (zh) * | 2010-03-12 | 2010-09-01 | 昆山三泰新电子科技有限公司 | 影音信号的usb介面转换装置 |
CN103793340A (zh) * | 2012-10-31 | 2014-05-14 | 开曼晨星半导体公司 | 串行数据处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN114691582A (zh) | 2022-07-01 |
TW202225870A (zh) | 2022-07-01 |
US20220206988A1 (en) | 2022-06-30 |
US11615049B2 (en) | 2023-03-28 |
CN114691582B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009525515A (ja) | インタラプティブルクロックを用いたデータバスインタフェース | |
US11221977B2 (en) | Daisy chain mode entry sequence | |
WO2007076428A1 (en) | Analog to digital converter unit | |
US7779174B2 (en) | Method and apparatus for dynamically changing burst length using direct memory access control | |
TWI761008B (zh) | 可編程串列輸入輸出控制器、操作系統及方法 | |
US20070053301A1 (en) | Network hardware device | |
JP6070600B2 (ja) | マイクロコンピュータ | |
JP5918192B2 (ja) | Plcシステムでのデータ処理装置及びその方法 | |
US20220077856A1 (en) | Circuits And Methods For Accessing Signals In Integrated Circuits | |
US20030133470A1 (en) | Polling device and communication apparatus | |
US6831583B1 (en) | Integrated circuit comprising a microprocessor and an analogue to digital converter which is selectively operable under the control of the microprocessor and independently of the microprocessor, and a method for operating the integrated circuit | |
KR101109600B1 (ko) | 직접 메모리 접근 제어를 이용한 데이터 전송 방법 및 그장치 | |
WO2024146187A1 (zh) | 基于zynq的多通道adc同步采集的装置及方法 | |
US20210328624A1 (en) | Relay device, relay method, and computer program | |
JP5521847B2 (ja) | シリアル通信回路 | |
JP2005085282A (ja) | ディスクインターフェース装置、それを備えたディスクインターフェースシステム及びその方法 | |
JP3894787B2 (ja) | 受信回路 | |
TWI760872B (zh) | 管理控制器及控制方法 | |
JP2004519032A (ja) | プロセッサの介入あり又はなしでのハードウェアの初期化 | |
JPH11163958A (ja) | 通信制御装置 | |
KR20190127108A (ko) | Plc의 입력 신호 필터링 장치 | |
JP4097377B2 (ja) | マイクロコンピュータ | |
JP5350049B2 (ja) | インターフェース回路 | |
JP4576324B2 (ja) | マイクロプロセッサ | |
JPH04175917A (ja) | ノイズ除去回路 |