TW202022627A - 通用序列匯流排裝置及其操作方法 - Google Patents
通用序列匯流排裝置及其操作方法 Download PDFInfo
- Publication number
- TW202022627A TW202022627A TW107144048A TW107144048A TW202022627A TW 202022627 A TW202022627 A TW 202022627A TW 107144048 A TW107144048 A TW 107144048A TW 107144048 A TW107144048 A TW 107144048A TW 202022627 A TW202022627 A TW 202022627A
- Authority
- TW
- Taiwan
- Prior art keywords
- serial bus
- universal serial
- connection
- time period
- transmission time
- 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
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Flexible Shafts (AREA)
- Earth Drilling (AREA)
Abstract
一種通用序列匯流排(USB)裝置及其操作方法。通用序列匯流排的操作方法包括:設定並調整震盪信號,且依據調整後的震盪信號與通用序列匯流排主機終端建立連線;在建立連線後,從通用序列匯流排主機終端獲得交易封包,解析交易封包以獲得交易封包的長度資訊,依據長度資訊判斷與預估交易封包的預定傳輸時間段,且計算交易封包的實際傳輸時間段;以及在連線正在進行時,依據預定傳輸時間段及實際傳輸時間段來調整震盪信號,以維持上述連線的穩定。
Description
本發明是有關於一種資訊傳輸裝置,且特別是有關於一種通用序列匯流排裝置及其操作方法。
通用序列匯流排(USB)裝置以其內部的震盪電路所產生的震盪信號作為時鐘信號(Clock Signal),並利用包含此時鐘信號的信息來與符合通用序列匯流排的主機終端(如,電腦、智慧型手機、平板電腦、智慧型電視…等)進行資料傳輸。然而,USB裝置中的震盪電路可能會受到外部環境的影響(如,溫度、壓力、濕度的變化)而使得所產生的時鐘信號發生震盪頻率不準的問題。例如,當USB裝置中的溫度過高時,可能導致USB裝置與主機終端無法進行資料傳輸。
因此,如何使通用序列匯流排裝置的震盪電路能夠穩定的輸出準確的震盪信號,避免通用序列匯流排裝置因震盪頻率的偏差而導致傳輸資訊錯誤甚至連線失敗,便是目前希望解決的問題。
本發明提供一種通用序列匯流排裝置及其操作方法,藉由自動地調整震盪信號的震盪頻率,從而使通用序列匯流排裝置的震盪電路能夠穩定的輸出準確的震盪信號,以維持通用序列匯流排裝置與通用序列匯流排主機終端的連線。
本發明實施例所述的通用序列匯流排(USB)裝置的操作方法包括下列步驟。設定並調整震盪信號,且依據調整後的震盪信號與通用序列匯流排主機終端建立連線。在建立連線後,從通用序列匯流排主機終端獲得交易封包,解析交易封包獲得交易封包的長度資訊。依據長度資訊判斷與預估交易封包的預定傳輸時間段,且計算交易封包的實際傳輸時間段。最後,在連線正在進行的情況下,依據預定傳輸時間段及實際傳輸時間段調整震盪信號,以維持上述連線的穩定。
本發明實施例所述的通用序列匯流排裝置包括震盪電路、傳輸電路、偵測電路以及控制電路。震盪電路用以產生震盪信號。傳輸電路以震盪信號與通用序列匯流排主機終端建立連線,並在連線建立後,從通用序列匯流排主機終端獲得交易封包。偵測電路用以解析交易封包以獲得交易封包的長度資訊,並計算交易封包的實際傳輸時間段。控制電路用以設定並調整震盪信號,使傳輸電路依據調整後的震盪信號與通用序列匯流排主機終端建立連線,並在連線正在進行時,依據交易封包的長度資訊判斷與預估交易封包的預定傳輸時間段,以依據預定傳輸時間段及實際傳輸時間段調整震盪信號,以維持上述連線的穩定。
基於上述,本發明實施例的通用序列匯流排裝置及其操作方法在與主機終端建立連線的過程中,以對震盪信號的震盪頻率值進行微調的方式來使通用序列匯流排裝置與主機終端能夠順利連線。之後,在通用序列匯流排裝置與主機終端的連線正在進行的情況下,依據交易封包的長度資訊計算出交易封包的預定傳輸時間段,並依據交易封包的預定傳輸時間段與實際傳輸時間段對震盪信號進行調整。進一步地,交易封包的長度資訊也可以作為判斷後續交易封包的長度資訊的依據。如此一來,本發明實施例的通用序列匯流排裝置便可自動地調整震盪信號的震盪頻率,讓震盪電路能夠穩定輸出準確的震盪信號,以維持上述連線的穩定。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明一實施例的一種通用序列匯流排裝置的電路方塊圖。請參考圖1,通用序列匯流排裝置100(Universal Serial Bus Device, USB Device)例如人類使用者界面(Human Interface Device;HID)、隨身碟(Flash drive)以及各種類比式或非連續訊號接收器。而與通用序列匯流排裝置100進行資訊傳輸的對象通稱為通用序列匯流排主機終端200(Universal Serial Bus Host, USB Host),例如電腦主機、智慧型手機…等。
通用序列匯流排裝置100包含震盪電路110、傳輸電路120、偵測電路130以及控制電路140。震盪電路110會依據一個震盪頻率値來產生震盪信號111,傳輸電路120會依據震盪信號111與通用序列匯流排主機終端200建立連線以及傳送交易封包T。在本實施例中,震盪電路110為可編程震盪器(Programmable Oscillator)。在一實施例中,通用序列匯流排裝置100可包含記憶電路,此記憶電路儲存了初始(default)的震盪頻率値。震盪電路110以此初使的震盪頻率值產生震盪信號111,供傳輸電路120依據此震盪信號111與通用序列匯流排主機終端200建立連線以及傳送交易封包T。在另一實施例中,震盪電路110可以在一個震盪頻率值範圍或震盪頻率值集合之中隨機地選取一個震盪頻率值,震盪電路110即以前述的震盪頻率值產生震盪信號111。例如,震盪電路110可以選取震盪頻率值範圍或震盪頻率值集合中的中間值。
通用序列匯流排裝置100的傳輸電路120會依據震盪電路110所產生的震盪信號111,與通用序列匯流排主機終端200建立連線。並且,在建立連線後,依據震盪電路110所產生的震盪信號111與通用序列匯流排主機終端200傳輸交易封包T,交易封包T可以是從通用序列匯流排主機終端200傳向通用序列匯流排裝置100,或是從通用序列匯流排裝置100傳向通用序列匯流排主機終端200。一個交易封包T(Transaction)通常由三個封包組成,即代符封包(Token Packet)、資料封包(Data Packet)以及交握封包(Handshake Packet或稱Status packet),每個交易封包T以代符封包作為起始;舉例來說,在交易封包T從通用序列匯流排主機終端200傳向通用序列匯流排裝置100時,通用序列匯流排裝置100會先收到交易封包T的代符封包,其次是資料封包,最後是交握封包。交易封包T的代符封包用以定義裝置、傳輸的方向、目的位址以及資料封包的長度,代符封包的長度一般固定是4個Bytes;資料封包包含處理此動作的資訊,也就是交易封包T真正要傳輸的內容,也因此資料封包的長度不固定;交握封包則是包含傳輸成功或失敗的訊息,交握封包的長度一般固定是8個位元(Bit)。另外,傳輸電路120也會從通用序列匯流排主機終端200接收到訊框起始封包(Start Of Frame Packet, SOF Packet)。訊框起始封包是一種特殊的封包,通用序列匯流排主機終端200會在每一個幀(Frame)開始時發送一個訊框起始封包,以維持匯流排上的時序。在一實施例中,通用序列匯流排主機終端200每125uSec傳送一次訊框起始封包。需說明的是,訊框起始封包是由通用序列匯流排主機終端200向通用序列匯流排裝置100單向發送,並且訊框起始封包的作用是維持匯流排上的時序,而非用來傳輸資訊,所以訊框起始封包不同於上述的交易封包T。
通用序列匯流排裝置100的偵測電路130主要是偵測傳輸電路120與通用序列匯流排主機終端200之間的交易封包T的往來狀態。詳細來說,在交易封包T從通用序列匯流排主機終端200傳向通用序列匯流排裝置100時,偵測電路130會對交易封包T的代符封包進行解析,以將代符封包所包含的資料封包的長度132提取出來;同時間,偵測電路130也會偵測整個交易封包T的起始接收時間點以及完成接收時間點,以計算出交易封包T的傳輸時間,也就是實際傳輸時間段133。在此實施例中,實際傳輸時間段133就是從接收交易封包T的代符封包,到交握封包傳送完成所經歷的時間長。在另一實施例中,通用序列匯流排裝置100的偵測電路130可以依據交易封包T的代符封包當中的長度資訊描述(Descriptor)來進行解析,以獲得整個交易封包T的長度。
在一實施例中,偵測電路130更可以確認傳輸電路120與通用序列匯流排主機終端200之間的連線狀態。一般來說,在通用序列匯流排裝置100接上通用序列匯流排主機終端200,或是其他欲建立連線的狀況下,通用序列匯流排裝置100的傳輸電路120會接收到來自通用序列匯流排主機終端200的一個訊框起始封包。通用序列匯流排裝置100偵測電路130可以偵測傳輸電路120是否在一個預定期間內接收到這個訊框起始封包,如果有,偵測電路130可判斷通用序列匯流排裝置100與通用序列匯流排主機終端200的連線是成功的。反之,如果偵測電路130在一預定期間內發現傳輸電路120沒有接收到這個訊框起始封包,則判斷連線是失敗的,此時,偵測電路130會將連線失敗的訊息131通知到控制電路140。
通用序列匯流排裝置100的控制電路140可以在欲建立連線時,設定並調整震盪信號111的震盪頻率值,使震盪電路110以調整後的震盪信號141來產生震盪信號111,以供傳輸電路120依據調整後的震盪信號111與所述通用序列匯流排主機終端200建立連線。具體來說,在控制電路140接收到偵測電路130所傳送的連線失敗的訊息131之後,可以使傳輸電路120阻斷當下的連線,並以一個預設幅度(例如1%)來微調所述震盪信號111的震盪頻率值,使震盪電路110依據經微調的震盪頻率值141產生震盪信號111,以供傳輸電路120以震盪信號111重新與通用序列匯流排主機終端200建立連線。在一實施例中,震盪電路110以一個震盪頻率值範圍的中間值作為初始的震盪頻率值,控制電路140在接收到連線失敗的訊息131之後,以前述震盪頻率值範圍的1%為預設幅度,將初始的震盪頻率值往上增加一個預設幅度(經微調的震盪頻率值141),震盪電路110則以此經微調的震盪頻率值141來產生震盪信號111。在另一實施例中,控制電路140可以以前述的預設幅度,將初始的震盪頻率值往下增加一個預設幅度,作為經微調的震盪頻率值141。在其他實施例中,控制電路140也可以當下的震盪頻率值的1%作為預設幅度。
關於使傳輸電路120阻斷當下的連線,在一實施例中,傳輸電路120包含一個傳輸電路開關,控制電路140可以控制傳輸電路120斷開此傳輸電路開關,藉此來實現阻斷連線的目的;當傳輸電路120欲重新與通用序列匯流排主機終端200建立連線時,可再次接通此傳輸電路開關。在另一實施例中,傳輸電路120可包含一個連線狀態識別符,控制電路140可以在接收連線失敗的訊息131時,更改傳輸電路120的連線狀態識別符,使傳輸電路120誤以為當下的連線狀態為斷線,而重新進行連線。
在通用序列匯流排裝置100與通用序列匯流排主機終端200建立連線時,可以利用通用序列匯流排主機終端200定時傳送訊框起始封包的特性,並通過本發明的上述技術手段,來確保通用序列匯流排裝置100與通用序列匯流排主機終端200所建立的連線是成功且能持續的。在建立連線之初,偵測電路130與控制電路140會重複進行上述偵測與調整震盪頻率值的動作,直到偵測電路130確認連線成功為止。例如,控制電路140在首次接收到連線失敗的訊息131時,將初始的震盪頻率值往上增加一個預設幅度,若是再次收到連線失敗的訊息131,控制電路140將當下的震盪頻率值再往上調高一個預設幅度,依此類推。當被調高的震盪頻率值將超過預定的上限值時,控制電路140可以改以將初始的震盪頻率值往下調低一個預設幅度,在下一次接收到連線失敗的訊息131時,控制電路140將當下的震盪頻率值再往下調低一個預設幅度,直到被調低的震盪頻率值達到預設的下限值。
最重要的是,控制電路140可以在連線已經建立並正在進行的情況下,依據偵測電路130所提取的交易封包T的資料封包的長度132,來判斷與預估交易封包T的傳輸時間,也就是交易封包T的預定傳輸時間段。詳細來說,由於代符封包與交握封包的長度是固定的,因此控制電路140可以經由資料封包的長度132,得知整個交易封包T的長度。控制電路140將會依據交易封包T的長度計算出交易封包T的預定傳輸時間段,並且依據交易封包T的預定傳輸時間段與實際傳輸時間段133的差異,來調整震盪信號的震盪頻率值,以維持連線的穩定。
在一實施例中,在得知交易封包T的長度的情況下,控制電路140可以依據交易封包T的長度以及當前的震盪頻率值,估算出接收交易封包T所花的時間(預定傳輸時間段)。偵測電路130同時也會偵測整個交易封包T的實際傳輸時間段133。偵測電路130將交易封包T的實際傳輸時間段133告知控制電路140之後,控制電路140將實際傳輸時間段133減去預定傳輸時間段,得到一個差值。控制電路140可以依據此差值來調整當前震盪信號的震盪頻率值。舉例來說,當差值為正時,控制電路140將震盪頻率值141調低一個預定比例值,例如當前震盪頻率值的1%;差值為負時,控制電路140將震盪頻率值141調高一個預定比例值;若是沒有實質的差值時,則不進行調整。透過上述的手段,震盪信號111的震盪頻率值得以即時地、動態地被調整,使得連線可以保持穩定。
由於震盪頻率是震盪次數/時間(秒),所以在另一實施例中,偵測電路130可計算傳輸交易封包T所實際耗費的震盪次數,而控制電路140以震盪次數來代表傳輸時間並進行計算。詳細來說,控制電路140可以依據交易封包T的長度計算出傳輸交易封包T的所需要的震盪次數(預定震盪次數,例如180)。在傳輸電路120傳輸交易封包T時,偵測電路130會計算傳輸交易封包T所實際耗費的震盪次數(實際震盪次數,例如200),並告知控制電路140。在此實施例中,交易封包T的預定震盪次數少於實際震盪次數,控制電路140會依據傳輸交易封包T的預定震盪次數與實際震盪次數的差值,判斷震盪頻率為過快,因而調整震盪頻率值,產生一個經調整的較低的震盪頻率值141。相對地,當交易封包T的預定震盪次數多於實際震盪次數時,控制電路140會判斷震盪頻率為過慢,產生一個數值較大的經調整的震盪頻率值141。當交易封包T的預定震盪次數等於實際震盪次數,或是兩者之間的差距在一個可接受的範圍之內時,控制電路140所產生的經調整的震盪頻率值141與原先的震盪頻率值相同,或是控制電路140不產生經調整的震盪頻率值141。關於震盪頻率職的調整幅度,在一實施例中,控制電路140可以經由計算得到預定震盪次數與實際震盪次數的差值為20,控制電路140可以進一步計算此差值所佔當前的震盪頻率值的比例,並依據此比例對震盪頻率值進行調整。透過上述的手段,震盪信號111的震盪頻率值得以即時地、動態地被調整,使得連線可以保持穩定。
通用序列匯流排裝置100的偵測電路130以及控制電路140會重複上述偵測與調整震盪頻率值的動作,使震盪電路110所產生的震盪信號得以即時地被調整。由上可知,在連線進行的狀況下,即便通用序列匯流排裝置100的震盪電路110因為溫度或壓力的改變、導致產生的震盪頻率出現偏差,仍可以透過本發明的上述技術手段來調整通用序列匯流排裝置100的震盪頻率,使通用序列匯流排裝置100的震盪頻率得以持續地匹配通用序列匯流排主機終端200,以維持連線的穩定,避免發生資訊落差甚至連線失敗中斷。
在另一實施例中,通用序列匯流排裝置100的偵測電路130可以依據交易封包T的長度資訊描述(存在於代符封包當中)來進行解析,以獲得資料封包的長度132,進而獲得交易封包T的長度資訊。更進一步地,偵測電路130可以儲存前述長度資訊描述以及對應的長度132,並在傳輸電路120接收到後續交易封包時,比對後續交易封包中的長度資訊描述與儲存的長度資訊描述。偵測電路130可以在確認結果為相同時,依據儲存的長度資訊描述所對應的長度資訊,來判斷與預估後續交易封包的預定傳輸時間段,並且計算後續交易封包的實際傳輸時間段。若確認結果為不同時,偵測電路130則依循原本的步驟來解析後續交易封包的長度資訊。簡單來說,偵測電路130可以在確認後續交易封包的長度資料描述與儲存的長度資料描述相同的情況下,省略解析的步驟,而直接以儲存的長度資料描述所對應的長度資訊,來判斷與預估後續交易封包的預定傳輸時間段,並且計算後續交易封包的實際傳輸時間段。
圖2是依照本發明一實施例的一種通用序列匯流排裝置的操作方法的步驟流程圖。請同時參考圖1與圖2,步驟S210是由通用序列匯流排裝置100的控制電路140設定並調整震盪信號111,且傳輸電路120依據調整後的所述震盪信號111與通用序列匯流排主機終端200建立連線。步驟S220是在建立連線後,由傳輸電路120從通用序列匯流排主機終端200獲得交易封包T,並解析所述交易封包T的代符封包,以獲得資料封包的長度132。步驟S230是由控制電路140依據資料封包的長度132,估算交易封包T的欲定震盪次數。由於震盪頻率是震盪次數/時間(秒),所以此實施例以震盪次數來代表交易封包T的傳輸時間段。在步驟S240中,由偵測模組130計算交易封包T在傳輸過程中的實際震盪次數,以代表交易封包T的實際傳輸時間段133。步驟S250中,由控制電路140計算預定震盪次數與實際震盪次數的差值。步驟S260則是由控制電路140依據上述差值來調整震盪信號111的震盪頻率值,以產生經調整的震盪頻率值141。控制電路140將此經調整的震盪頻率值141提供給震盪電路110,使震盪電路110依據經調整的震盪頻率值141產生震盪信號111,供傳輸電路120維持連線以及傳輸資訊之用。透過前述的手段,震盪信號111的震盪頻率值得以即時地、動態地被調整,使得連線能夠保持穩定。
在另一實施例中,步驟S250的控制電路140可進一步計算差值與預定震盪次數的比例,得到一個差值比例;在步驟S260中,可由控制電路140依據此差值比例,來調整震盪信號111的震盪頻率值。最後,在步驟S270中,以經調整的震盪頻率值141產生震盪信號111,震盪信號111供通用序列匯流排裝置100與通用序列匯流排主機終端200進行資訊傳輸。
在上述步驟S230~S250中所用的計算基礎是通用序列匯流排裝置100的震盪信號的震盪次數。然而在另一實施例中,則可以使用交易封包T的傳輸時間作為計算基礎。具體來說,可以由控制電路140經由資料封包的長度132以及當下的震盪頻率值,估算出交易封包T的欲定傳輸時間段,以及在傳輸電路120接收交易封包T的同時,由偵測電路130偵測交易封包T所實際傳輸的時間(實際傳輸時間段),並依據交易封包T的欲定傳輸時間段以及實際傳輸時間段的差值來調整震盪信號111的震盪頻率值。
上述本發明的通用序列匯流排裝置的操作方法可以在連線確立的情況下,即時、動態地調整震盪信號的震盪頻率值,以避免因為溫度、壓力造成通用序列匯流排裝置的震盪頻率偏差,而引起的傳輸資訊錯誤甚至連線失敗。
圖3是圖2的通用序列匯流排裝置的操作方法的細部步驟流程圖。請參考圖3,圖2的步驟S210可進一步係分為下面步驟S211~S216。首先,在步驟S211當中,在欲建立連線之初,通用序列匯流排裝置100的偵測電路130如果在一個預設期間之內偵測到傳輸電路120接收到來自通用序列匯流排主機終端200的訊框起始封包,則可判斷連線成功(步驟S212),否則判斷連線失敗(步驟S213)。在判斷連線失敗後進入到步驟214。步驟S214是由通控制電路140阻斷與通用序列匯流排主機終端200的連線。接著,在步驟S215中,由控制電路140微調震盪信號111的震盪頻率值,產生一個經調整的震盪頻率值141。在步驟216中,由震盪電路110以經調整的震盪頻率值141產生震盪信號111,並由傳輸電路120以震盪信號111重新與通用序列匯流排主機終端200建立連線。控制電路140阻斷與通用序列匯流排主機終端200的連線的手段可以透過硬體手段或軟體手段。一實施例所採用的硬體手段是由控制電路140控制傳輸電路120斷開位在傳輸電路120上的傳輸電路開關,並在重新建立連線時由傳輸電路120導通此傳輸電路開關。另一實施例所採取的軟體手段則是由控制電路140變更連線狀態識別符,使傳輸電路120誤以為連線失敗而重新建立連線。
依據以上技術手段,本發明的通用序列匯流排裝置100在建立連線時,可以利用通用序列匯流排主機終端200定時傳送訊框起始封包的特性,來確保通用序列匯流排裝置100與通用序列匯流排主機終端200所建立的連線是成功且能持續的。
綜上所述,本發明實施例的通用序列匯流排裝置及其操作方法可以在通用序列匯流排裝置與通用序列匯流排裝置主機終端的連線已經建立並正在進行的情況下,依據交易封包的長度資訊計算出交易封包的預定傳輸時間段,另外同時計算交易封包實際的實際傳輸時間段。並且,依據交易封包的預定傳輸時間段與實際傳輸時間段的差異,對震盪信號的震盪頻率值進行調整,並以經調整的震盪頻率值來產生震盪信號。進一步地,交易封包的長度資訊也可以作為判斷後續交易封包的長度資訊的依據。透過上述技術手段,可以即時地調整震盪頻率值,使通用序列匯流排裝置所產生的震盪信號可以穩定且準確,避免因震盪信號失準而漏失傳輸資訊甚至導致連線失敗。在另一實施例中,本發明的通用序列匯流排裝置及其操作方法更透過在預設期間內接收到訊框起始封包來判斷連線是否成功,並在判斷連線失敗時自動斷線並重新連線,以確保連線是成功且穩定的。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:通用序列匯流排裝置110:震盪電路111:震盪信號120:傳輸電路130:偵測電路131:連線失敗的訊息132:資料封包的長度133:實際傳輸時間段140:控制電路141:經微調的震盪頻率值200:通用序列匯流排主機終端S210~S216、S220~S270:步驟T:交易封包
圖1是依照本發明一實施例的一種通用序列匯流排裝置的電路方塊圖。 圖2是依照本發明一實施例的一種通用序列匯流排裝置的操作方法的步驟流程圖。 圖3是圖2的通用序列匯流排裝置的操作方法的細部步驟流程圖。
S210~S270:步驟
Claims (10)
- 一種通用序列匯流排(USB)裝置的操作方法,包括: 設定並調整震盪信號,且依據調整後的所述震盪信號與通用序列匯流排主機終端建立連線; 在建立所述連線後,從所述通用序列匯流排主機終端獲得交易封包,解析所述交易封包獲得所述交易封包的長度資訊,依據所述長度資訊判斷與預估所述交易封包的預定傳輸時間段,且計算所述交易封包的實際傳輸時間段;以及 在所述連線正在進行時,依據所述預定傳輸時間段及所述實際傳輸時間段調整所述震盪信號,以維持所述連線的穩定。
- 如申請專利範圍第1項所述的通用序列匯流排裝置的操作方法,其中依據所述預定傳輸時間段及所述實際傳輸時間段調整所述震盪信號的步驟包括: 計算所述預定傳輸時間段與所述實際傳輸時間段的差異,以調整所述震盪信號的震盪頻率值;以及 以經調整的所述震盪頻率值產生所述震盪信號。
- 如申請專利範圍第1項所述的通用序列匯流排裝置的操作方法,其中以設定並調整所述震盪信號,且依據調整後的所述震盪信號與所述通用序列匯流排主機終端所述建立所述連線的步驟更包括: 確認於預設期間之內接收來自所述通用序列匯流排主機終端的訊框起始封包(Start-of-Frame packet),以判斷與所述通用序列匯流排主機終端連線成功,否則判斷連線失敗並進行以下步驟: 阻斷與所述通用序列匯流排主機終端的所述連線; 微調所述震盪信號的震盪頻率值;以及 以經微調的所述震盪頻率值所產生所述震盪信號重新與所述通用序列匯流排主機終端建立連線。
- 如申請專利範圍第1項所述的通用序列匯流排裝置的操作方法,其中所述交易封包不是訊框起始封包。
- 如申請專利範圍第1項所述的通用序列匯流排裝置的操作方法,該操作方法更包括: 依據所述交易封包的長度資訊描述,解析所述交易封包以獲得所述交易封包的所述長度資訊; 儲存所述交易封包的所述長度資訊描述以及對應的所述長度資訊;以及 在接收後續交易封包時,確認所述後續交易封包中的長度資訊描述與所述交易封包的所述長度資訊描述是否相同,若確認結果為相同時,依據所述交易封包的所述長度資訊判斷與預估所述後續交易封包的預定傳輸時間段,且計算所述後續交易封包的實際傳輸時間段。
- 一種通用序列匯流排(USB)裝置,包括: 震盪電路,產生震盪信號; 傳輸電路,以所述震盪信號與通用序列匯流排主機終端建立連線,並在建立所述連線後,從所述通用序列匯流排主機終端獲得交易封包; 偵測電路,解析所述交易封包獲得所述交易封包的長度資訊,並計算所述交易封包的實際傳輸時間段;以及 控制電路,設定並調整所述震盪信號,使所述傳輸電路依據調整後的所述震盪信號與所述通用序列匯流排主機終端建立所述連線,並在所述連線正在進行時,依據所述長度資訊判斷與預估所述交易封包的預定傳輸時間段,以依據所述預定傳輸時間段及所述實際傳輸時間段調整所述震盪信號,以維持所述連線的穩定。
- 如申請專利範圍第6項所述的通用序列匯流排裝置,其中所述控制電路更用以: 計算所述預定傳輸時間段與所述實際傳輸時間段的差異,以調整所述震盪信號的震盪頻率值;以及 使所述震盪電路以經調整的所述震盪頻率值產生所述震盪信號。
- 如申請專利範圍第6項所述的通用序列匯流排裝置,其中所述偵測電路更用以計算代表所述實際傳輸時間段的實際震盪次數;以及 其中所述控制電路更用以: 依據所述交易封包的所述長度資訊,產生代表所述預定傳輸時間段的預定震盪次數; 計算所述預定震盪次數與所述實際震盪次數的差值;以及 依據所述差值調整所述震盪信號。
- 如申請專利範圍第8項所述的通用序列匯流排裝置,其中所述控制電路更用以: 計算所述差值與所述預定震盪次數的比例,產生差值比例; 依據所述差值比例,調整所述震盪信號的所述震盪頻率值;以及 使所述震盪電路以經調整的所述震盪頻率值產生所述震盪信號。
- 如申請專利範圍第6項所述的通用序列匯流排裝置,其中所述偵測電路更用以: 確認於預設期間之內接收來自所述通用序列匯流排主機終端的訊框起始封包,以判斷與所述通用序列匯流排主機終端連線成功,否則判斷連線失敗; 其中所述控制電路更用以在連線失敗時,使所述傳輸電路阻斷與所述通用序列匯流排主機終端的所述連線,並微調所述震盪信號的震盪頻率值,使所述傳輸電路以經微調的所述震盪頻率值所產生所述震盪信號重新與所述通用序列匯流排主機終端建立連線。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107144048A TWI772574B (zh) | 2018-12-07 | 2018-12-07 | 通用序列匯流排裝置及其操作方法 |
CN201811621875.8A CN111290984A (zh) | 2018-12-07 | 2018-12-28 | 通用序列总线装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107144048A TWI772574B (zh) | 2018-12-07 | 2018-12-07 | 通用序列匯流排裝置及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202022627A true TW202022627A (zh) | 2020-06-16 |
TWI772574B TWI772574B (zh) | 2022-08-01 |
Family
ID=71024127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107144048A TWI772574B (zh) | 2018-12-07 | 2018-12-07 | 通用序列匯流排裝置及其操作方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111290984A (zh) |
TW (1) | TWI772574B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780469A (zh) * | 2022-06-24 | 2022-07-22 | 浙江地芯引力科技有限公司 | 时钟频率校准装置、数据芯片以及时钟频率校准方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2296166B (en) * | 1994-11-29 | 1999-07-07 | Plessey Telecomm | Clock synchronisation |
DE10213262B4 (de) * | 2002-03-25 | 2005-11-10 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Regeln eines Sendezeitpunkts eines zeitkontinuierlichen Sendesignals |
CN1960183B (zh) * | 2005-10-31 | 2010-07-28 | 盛群半导体股份有限公司 | 自动调整的高准确性振荡器 |
CN101051837B (zh) * | 2006-04-07 | 2011-08-10 | 盛群半导体股份有限公司 | Usb接口内建式振荡器的频率校正装置及其方法 |
CN103631745A (zh) * | 2007-05-15 | 2014-03-12 | 克罗诺洛吉克有限公司 | 基于usb的同步和定时系统 |
US20090063717A1 (en) * | 2007-08-28 | 2009-03-05 | Bohm Mark R | Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface |
CN101458675B (zh) * | 2007-12-12 | 2010-09-08 | 盛群半导体股份有限公司 | 通用序列总线的频率同步装置及方法 |
CN101931397A (zh) * | 2009-06-23 | 2010-12-29 | 义隆电子股份有限公司 | 校正usb装置频率的方法及电路 |
CN102063402B (zh) * | 2009-11-12 | 2015-01-14 | 义隆电子股份有限公司 | 校正usb装置频率的方法及电路 |
CN102081426B (zh) * | 2009-11-30 | 2013-06-12 | 原相科技股份有限公司 | 可调式振荡器的频率调整装置及频率调整方法 |
CN102854916B (zh) * | 2012-09-05 | 2015-04-22 | 东莞芯成电子科技有限公司 | 一种实现usb设备的时钟精确同步的方法 |
US9830298B2 (en) * | 2013-05-15 | 2017-11-28 | Qualcomm Incorporated | Media time based USB frame counter synchronization for Wi-Fi serial bus |
-
2018
- 2018-12-07 TW TW107144048A patent/TWI772574B/zh active
- 2018-12-28 CN CN201811621875.8A patent/CN111290984A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI772574B (zh) | 2022-08-01 |
CN111290984A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020207229A1 (zh) | 数据传输方法及相关装置 | |
AU2021266341B2 (en) | Session processing method, device, and system | |
US11855759B2 (en) | Data synchronization method, device, equipment, system and storage medium | |
EP3490304B1 (en) | Method for identifying access point and hotspot, and related products | |
US11304136B2 (en) | Wireless communication method and communication device | |
WO2012174934A1 (zh) | 一种心跳周期的自适应方法和装置 | |
US9859969B2 (en) | Relay apparatus and method of controlling relay apparatus | |
JP2015095780A (ja) | 通信装置及びパケット制御方法 | |
TW202022627A (zh) | 通用序列匯流排裝置及其操作方法 | |
US11917543B2 (en) | Bluetooth-based data transmission method and data receiving method, communicating apparatus and computer storage medium | |
TWI581104B (zh) | 主控元件以及資料傳輸方法 | |
JP2003218840A (ja) | 携帯型情報端末 | |
US9307509B1 (en) | Transmitting radio signals using simultaneous retransmission | |
WO2018035681A1 (zh) | 建立端口连接的方法及端口芯片 | |
CN113727152A (zh) | 调整码率的方法、装置及存储介质 | |
JP4069125B2 (ja) | 伝送方法、送信装置、および送受信システム | |
CN117978749B (zh) | 一种基于fpga实现数据源流控的方法及系统 | |
CN114448594B (zh) | 一种通信频率同步方法及系统 | |
CN112019291B (zh) | 一种网络设备校时方法 | |
JP2010212771A (ja) | 半導体装置、シリアライザ/デシリアライザ評価方法およびプログラム | |
JP6773868B1 (ja) | 送信装置、送信方法及びプログラム | |
US10749781B2 (en) | Setting device, setting method, recording medium to which setting program is recorded, communication system, client device, and server device | |
CN107332733B (zh) | 一种网络端口的状态监测方法和装置 | |
CN116909507A (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN112822069A (zh) | 一种通信方法、装置、设备、系统及存储介质 |