TW202101241A - 串列周邊介面主機 - Google Patents

串列周邊介面主機 Download PDF

Info

Publication number
TW202101241A
TW202101241A TW109106470A TW109106470A TW202101241A TW 202101241 A TW202101241 A TW 202101241A TW 109106470 A TW109106470 A TW 109106470A TW 109106470 A TW109106470 A TW 109106470A TW 202101241 A TW202101241 A TW 202101241A
Authority
TW
Taiwan
Prior art keywords
data
list
spi
time
packet
Prior art date
Application number
TW109106470A
Other languages
English (en)
Other versions
TWI747176B (zh
Inventor
佩爾 桑德爾
約翰 溫納斯坦
Original Assignee
瑞典商安訊士有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞典商安訊士有限公司 filed Critical 瑞典商安訊士有限公司
Publication of TW202101241A publication Critical patent/TW202101241A/zh
Application granted granted Critical
Publication of TWI747176B publication Critical patent/TWI747176B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)

Abstract

揭示了一種串列周邊介面(SPI)主機(110)及在該SPI主機中之方法,該SPI主機及該方法用於將資料傳送至一資料通信及處理系統(100)中之一周邊裝置。該SPI主機(110)包含一記憶體(111),該記憶體包含封包之一清單,每一封包包含與一時間參數相關聯之資料,該時間參數指示該資料要在何時傳送至該周邊裝置。該時間參數為可組態的。該SPI主機進一步包含一串列傳輸及接收單元(112),該串列傳輸及接收單元用以在根據與該資料相關聯之該時間參數的一時間傳送該清單中之該資料。

Description

串列周邊介面主機
本文中之具體實例係關於一種串列周邊介面(Serial Peripheral Interface;SPI)主機。該些具體實例進一步係關於一種包含SPI主機之資料通信及處理系統。
在諸如視訊監視系統、網路音訊系統、無線通信系統、雷達系統等資料通信及處理系統中,經由SPI協定由主系統晶片中之中央處理單元(central processing unit;CPU)組態及控制許多周邊電路,如感測器、攝影機、視訊單元、類比至數位轉換器(analog-to-digital converter;ADC)、數位至類比轉換器(digital-to-analog converter;DAC)、音訊編解碼器、馬達控制裝置及類似者。在一些應用中,周邊電路需要即時地重組態,其中僅小的時間窗被允許用於SPI命令。在傳統中斷驅動或直接記憶體存取(direct memory access;DMA)驅動之SPI之情況下,可能難以在正確時間開始傳送以使SPI適合於所允許時間窗內。
通常,該問題係藉由使用用於時間要求嚴格的SPI通信之專用微控制器來解決。然而,使用專用微控制器會增加成本。在US 6687769中,經改良高效能緩衝方案提供有用以實現基於微控制器之產品以及其他組件及裝置以達成較高串列傳輸及接收資料速率的SPI。緩衝方案可提供高資料速率而無需頻繁CPU輪詢或高中斷負擔。緩衝方案經組態有用於識別資料何時準備好傳輸或由CPU讀取之中斷組態。然而,此軟體控制相當複雜且其並不解決問題,亦即,使SPI傳送恰好在所要時間發生。
鑒於上文,本文中之具體實例之目標為提供用於將資料傳送至資料通信及處理系統中之周邊裝置的改良方法及設備。
根據本文中之具體實例之一個態樣,該目標係藉由一種用於將資料傳送至一資料通信及處理系統中之一周邊裝置的SPI主機來達成。該SPI主機包含一記憶體,該記憶體包含封包之一清單。每一封包包含與一時間參數相關聯之資料,該時間參數指示該資料要在何時傳送至該周邊裝置。該時間參數為可組態的。該SPI主機進一步包含一串列傳輸及接收單元,該串列傳輸及接收單元用以在根據與該資料相關聯之該時間參數的一時間傳送該清單中之該資料。
根據本文中之具體實例之一個態樣,該目標係藉由一種在一SPI主機中執行之用於將資料傳送至一資料通信及處理系統中之一周邊裝置的方法來達成。該SPI主機包含一記憶體及一串列傳輸及接收單元,該記憶體包含封包之一清單。每一封包包含與一時間參數相關聯之資料,該時間參數指示該資料要在何時傳送至該周邊裝置。該時間參數為可組態的。該SPI主機在根據與該資料相關聯之該時間參數的一時間將該清單中之該資料傳送至該周邊裝置。
換言之,根據本文中之具體實例之SPI主機具有內部記憶體,例如隨機存取記憶體(Random Access Memory;RAM),其中封包之清單(亦即SPI傳送)可排入佇列(queue up)且接著在不同的明確界定之時間執行。根據本文中之具體實例之SPI主機能夠在例如來自系統中之全域計時器的可組態絕對時間開始處理封包之清單及SPI傳送,或藉由自資料通信及處理系統接收外部信號而開始處理封包之清單及傳送,或在自資料通信及處理系統接收起始信號起等待可組態時間之後開始處理封包之清單及傳送。清單可為循環的,使得SPI傳送之相同序列可重複可組態次數。
根據本文中之具體實例之SPI主機可實施為主系統晶片中之功能區塊。
相較於可通常利用軟體控制達成之情況(甚至在利用專用微控制器之情況下),根據本文中之具體實例之SPI主機提供對時序之更精確控制。在根據本文中之具體實例之SPI主機中執行的方法不太複雜,此係由於主要在硬體中處置時序。SPI主機可整合至主系統晶片中且藉由跳過外部微控制器組件來節省成本。
因此,本文中之具體實例提供用於將資料傳送至資料通信及處理系統中之周邊裝置的改良方法及設備。
1 為說明其中可實施根據本文中之具體實例之SPI主機110 之資料通信及處理系統100 的示意性方塊圖。
資料通信及處理系統100可為視訊監視系統、網路音訊系統、無線通信系統、雷達系統等中之任一者。資料通信及處理系統100包含主系統晶片120 。主系統晶片120包含CPU122 。資料通信及處理系統100可進一步包含一或多個周邊電路或裝置PD1PD2PD3 ...,諸如感測器、攝影機、視訊單元、ADC、DAC、音訊編解碼器、馬達等。周邊裝置PD1、PD2、PD3可位於或整合於主系統晶片120上或位於主系統晶片120外部。
根據本文中之具體實例,SPI主機110包含記憶體111 ,該記憶體包含封包之清單,每一封包包含與時間參數t1t2t3 ...相關聯之資料D1D2D3 ...,該時間參數指示資料要在何時傳送至周邊裝置。時間參數為可組態的,且其經設置以確保周邊裝置中之某些事件在某些時間發生,此係因為該些事件為應用所需要的。時間參數為可組態的且可基於周邊裝置之不同應用、操作模式、操作模式參數等而組態。
SPI主機110進一步包含用以與周邊裝置PD1、PD2、PD3通信之串列傳輸及接收單元T/R 112 。串列傳輸及接收單元T/R 112在根據與資料相關聯之時間參數的時間將清單中之資料傳送至周邊電路PD1、PD2、PD3。
SPI主機110可實施為主系統晶片120中之功能區塊。CPU 122可與SPA主機110互動以用於控制一或多個周邊裝置PD1、PD2、PD3之操作。
資料通信及處理系統100可進一步包含用於儲存其他資料或組態之一或多個RAM124
有多種方式觸發串列傳輸及接收單元112開始處理封包之清單及傳送資料。
根據本文中之一些具體實例,SPI主機110可自資料通信及處理系統100接收信號Ext ,且此所接收外部信號將觸發串列傳輸及接收單元112開始處理封包之清單。
根據本文中之一些具體實例,串列傳輸及接收單元112可在自資料通信及處理系統接收起始信號起等待可組態時間之後開始處理封包之清單。
根據本文中之一些具體實例,串列傳輸及接收單元112可在可組態絕對時間開始處理封包之清單,亦即,串列傳輸及接收單元112可在具有絕對時間之計時器到期時開始處理封包之清單。計時器可為資料通信及處理系統100中之全域計時器或被稱為全域計時器。
2 展示根據本文中之具體實例的儲存於記憶體111中之封包之清單及資料封包之實例結構。在每一資料封包中,除參數TIMEDATA 之外,該資料封包可包含標頭HEADER 。標頭指示與哪一周邊裝置通信,且亦指示SPI協定之封包長度及操作模式。可存在若干SPI協定變體,且SPI主機需要選擇正確模式以與周邊裝置匹配。對於傳輸資料,資料可直接在封包DATA中,或可存在至單獨資料區域DATA1之指標POINTER1,或兩種情況皆有。若吾人希望在若干緩衝器中分裂封包,則可存在更多資料指標,諸如POINTER2、DATA2。
對於接收資料,其可具有類似情形。SPI主機可保留封包資料自身中之空間或可將一或多個指標提供至單獨資料區域,或兩種情況皆有。根據本文中之一些具體實例,傳輸資料可直接在封包中,且用於接收資料之至單獨接收緩衝器的指標。
根據本文中之一些具體實例,串列傳輸及接收單元112可在循環結構中傳送封包清單中之資料,使得清單中之封包重複可組態次數,如圖2中所展示。在每一循環之間,可存在等待觸發。然而,可能不必在循環之間等待觸發。
取決於不同周邊裝置之不同應用及組態,與每一封包中之資料相關聯的時間參數可以不同方式組態。
根據本文中之一些具體實例,與資料相關聯之時間參數可為絕對時間。
根據本文中之一些具體實例,與資料相關聯之時間參數可為相對時間。舉例而言,當前封包之時間參數與先前封包之開始或結束時間相關。
基本上,除第一封包之開始以外,其他皆無關緊要,其中當一個裝置希望與一些其他裝置同時開始時,絕對時間係有用的。接著,兩個裝置經組態以具有相同的開始時間且等待直至彼時間到期。在第一封包之後,僅為相對時間抑或絕對時間為較佳的實施決策。
根據本文中之一些具體實例,可使用來自周邊裝置之事件資訊推斷與資料相關聯之時間參數。舉例而言,若SPI主機用於馬達控制裝置,則吾人可讀出取決於馬達類型之資訊,例如速度、位置、電流、電壓。接著基於來自馬達之資訊計算將命令發出至馬達之時間。
根據本文中之一些具體實例,至少第一封包中之資料之時間參數係基於自周邊裝置接收之觸發信號而判定。舉例而言,SPI主機可在影像感測器或整個攝影機開始曝光時自該影像感測器或整個攝影機獲得觸發信號。接著,有可能在與曝光之開始相關的特定時間利用由SPI主機控制之電子閃光激發一系列閃光。
根據本文中之一些具體實例,可使用自資料通信及處理系統100之一些其他部分(亦即,不自受控周邊裝置自身)傳達的絕對時間推斷與資料相關聯之時間參數。資料通信及處理系統100之另一部分可控制一些其他周邊裝置,且有必要同時或以已知時間差實行兩個動作。舉例而言,在立體攝影機情況下,存在兩個攝影機,且在每一攝影機中,SPI主機110控制何時拍攝圖像。兩個攝影機具有例如經由全球定位系統(Global Positioning System;GPS)或精確度時間協定(Precision Time Protocol;PTP)之共同絕對時間,PTP為乙太網路之擴展。兩個攝影機獲得相同絕對開始時間,因此其可開始以同步方式拍攝圖像。
根據本文中之一些具體實例,清單中之一或多個時間參數可藉由使用周邊裝置之操作模式參數來判定。舉例而言,可基於周邊裝置之操作模式參數推斷與第一封包中之資料相關聯的時間參數及清單中之連續封包之間的時間差。
舉例而言,為了控制雷達傳輸器,可使用諸如何時打開及關閉電源、在精確時間將傳輸器之功率位準及/或頻率設定為特定值以形成正確雷達波束等操作模式參數來判定時間參數及/或清單中之連續封包之間的時間差。
另一實例可為控制影像感測器,其中吾人可能希望改變線之間或訊框之間的遮沒間隔中之增益或曝光時間。諸如遮沒間隔、訊框速率等操作模式參數可用以判定時間參數及/或清單中之連續封包之間的時間差。
封包之清單及與每一封包中之資料相關聯的時間參數可由資料通信及處理系統100中之CPU 122預定或組態且儲存於SPI主機110之記憶體111中。
根據本文中之一些具體實例,資料通信及處理系統100可進一步包含本端控制單元LCU 123 ,且封包之清單及與每一封包中之資料相關聯的時間參數可由本端控制單元LCU 123預定或組態及設置。
根據本文中之一些具體實例,可藉由添加潛時因子以考慮資料通信及處理系統100中之任何顯著潛時來調整時間參數。潛時因子可為可取決於SPI正傳輸至之周邊裝置以預定方式改變的可調整因子。舉例而言,若SPI匯流排上存在具有不同時鐘速度之兩個周邊裝置,則有可能將延遲添加至較快裝置且首先開始至較慢裝置之傳輸,使得該些裝置同時結束。
取決於不同周邊裝置之不同應用及組態,封包清單中之資料可為不同的。周邊裝置可為雷達系統、影像感測器、音訊編解碼器、類比至數位轉換器、數位至類比轉換器、馬達控制裝置、攝影機或視訊單元中之任一者。
根據本文中之一些具體實例,至少一個封包中之資料可為待傳送至周邊裝置之組態資料。
舉例而言,對於攝影機,組態資料可對應於例如增益及曝光時間、光圈、光學影像穩定化、變焦等。
對於雷達系統,雷達傳輸中之啁啾可經組態及控制。 3 展示包含一或多個雷達之雷達系統300。每一雷達具有可能具有鎖相迴路(phase locked loop;PLL)之傳輸器(Tx)、一或多個接收器(Rx)及一或多個ADC。舉例而言,可存在至多4個雷達,但一次僅運行兩個。在4雷達情況下,每一雷達中可僅存在一個Rx及一個ADC。此意謂可具有至多16個裝置,亦即,16個晶片以進行選擇及組態。
所有裝置需要經由SPI協定之組態,但僅Tx及其PLL(若分開)需要運行時間重組態。
4 展示根據本文中之一些具體實例之用於雷達系統的SPI主機RSPI 400 。RSPI 400包含內部記憶體410 、具有兩個SPI埠之串列傳輸及接收單元T/X 420 。串列傳輸及接收單元420具有一或多個晶片選擇輸出接腳chip selects ,亦即,每周邊裝置一個晶片選擇輸出接腳,且具有6個輸入/輸出接腳,亦即2個時鐘clk 接腳、2個主機輸出/從機輸入(master out/slave in;MOSI)mosi 接腳及2個主機輸入/從機輸出(master in/slave out;MISO)miso 接腳。每一SPI埠具有其3個接腳clk、mosi、miso。圖4中亦展示本端CPULCPU 430 以及RSPI 400。
根據SPI協定,SPI匯流排允許在兩條線MOSI及MISO上同時傳輸及接收資料。時鐘極性(clock polarity;CPOL)及時鐘相位(clock phase;CPHA)為定義待由SPI匯流排使用之時鐘格式的主要參數。
以下為RSPI 400中之暫存器之清單: rw_cfg        模組啟用、位元時鐘極性、計時器時鐘源、MOSI接腳模式 rw_trig        觸發輸入模式及接腳選擇 rw_clk        位元時鐘頻率 rw_mem_wr_ptr      用於內部記憶體寫入之位址 rw_mem_wr      至內部記憶體之寫入,每一寫入遞增rw_mem_wr_ptr rw_head_wr      用於rw_mem_wr之映頻混擾(alias),以及描述封包標頭之欄位 rw_rec_wr         用於rw_mem_wr之映頻混擾,以及封包標頭之接收位址欄位 rw_mem_rd_cfg      用於內部記憶體讀數之位址及讀取型樣 rs_mem_rd        來自內部記憶體之讀數,每一讀數更新rw_mem_rd_cfg rw_first       用於清單中之第一封包的位址 rw_cnt        用於清單之循環計數器 rw_time      用於清單之開始時間,雙重緩衝 rw_start      開始命令 r_stat           狀態暫存器 r_intr...        中斷暫存器 rw_cs_cfg          晶片選擇極性、對於兩個埠共同的單獨範圍 以下為RSPI 400中之中斷之清單:rdy SPI埠準備好獲得新的開始命令idle SPI埠為閒置的pkt 具有pkt_irq 欄位集合之封包完成eol 具有eol 欄位集合之封包完成
雷達300傳輸啁啾。啁啾為頻率隨著時間增大或減小之信號。亦即,傳輸頻率以斜坡形式變化,如 5(a) 中所展示。啁啾信號可以訊框發送,每一訊框可包含兩個或更多個斜坡。此可由SPI主機110中之封包之清單組態及控制。
通常,需要若干封包以控制一個斜坡。舉例而言,用以打開電源之封包、用以開始頻率傾斜之封包、用以停止頻率傾斜之封包、用以關閉電源之封包等。所有此等封包需要在正確時間發送。 5(b) 展示用於一個斜坡之封包之清單。針對訊框中之每一斜坡重複用於一個斜坡之封包之序列。斜坡t1 內之封包之間以及訊框中之斜坡t2 之間的時序非常關鍵,例如需要約500 ns精確度。另外,訊框Ts 之開始亦必須處於準確時間。
如圖5(b)中所展示,封包可作為記憶體410中之循環組織於經鏈接清單中。該清單可重複可組態次數。更一般而言,當清單結束eol 被傳遞可組態次數時,傳送處理將停止。每一循環可對應於一個或2個或更多個啁啾,但存在針對如上文所描述之每一啁啾發送的若干命令,亦即封包。訊框中之啁啾之數目通常對應於封包之清單循環的次數。根據本文中之一些具體實例,可使封包之清單較長,使得其例如在需要兩種交替類型之啁啾之情況下覆蓋兩個啁啾。
6 展示封包標頭之實例結構。取決於是否丟棄所接收資料,標頭由兩個或三個32位元字組成。下 1 中描述標頭之欄位。 表1
欄位 大小 描述
len 12 以位元數目計之封包長度
cs 4 待用於傳送之晶片選擇輸出
nxt 10 至清單中之下一封包之位址,以32位元字之數目計
cpha 1 待用於傳送之CPHA模式。
bit_order 1 待用於傳送之位元次序。 0(msb):首先在字內傳輸/接收之MSB 1(lsb):首先在字內傳輸/接收之LSB
pkt_type 2 選擇如何使用封包之傳輸及接收位元。 0(tr):僅傳輸,丟棄接收資料 1(正常):傳輸及接收所有封包位元 2(burst_rd):傳輸tr_bits位元,繼之以固定值,接收所有位元 3(半雙工):半雙工模式
pkt_irq 1 設定當封包之傳送完成時是否將產生pkt中斷
eol 1 清單結束標記。當具有此欄位集合之封包已傳送組態於rw_cnt中之次數時,清單處理停止。
wait_time 32 自先前封包之開始至當前封包之開始的等待時間(以組態於rw_cfg.time_src中之參考時鐘之時鐘週期之數目計)。
rec_addr 10 至封包之讀取資料緩衝器之開始的位址(以32位元字之數目計)。若pkt_type欄位被設定為tr,則此欄位不存在。
cur_rec_addr 10 至封包之讀取資料緩衝器中之當前位置的位址(以32位元字之數目計)。欄位在封包之傳送完成時更新。若pkt_type欄位被設定為tr,則此欄位不存在。
tr_bits 12 封包中之傳輸位元之數目。若pkt_type欄位被設定為tr,則此欄位不存在。 若pkt_type欄位被設定為正常,則忽略此欄位。
封包t1之間的時間可組態於封包標頭中。時間t1可以雷達時鐘週期之數目或使用內部時鐘進行計數。
第一封包之開始時間Ts可組態於暫存器中。此暫存器可自控制CPU寫入,該控制CPU為主CPU或LCPU。Ts連續地與系統中之絕對時間計時器進行比較,且當其匹配時產生開始脈衝或觸發信號。替代地,可立即或在接收外部觸發信號之後開始第一封包。
封包長度、晶片選擇、達達位元次序等亦可組態於封包標頭中。
在rec_addr之情況下,封包長度、晶片選擇、達達位元次序等亦可組態於封包標頭中而不論所接收資料是否被儲存及將所接收資料儲存於內部RAM中之何處。
一個SPI封包可含有若干封裝資料值,例如12位元值,如 7 中所展示。該些值可能需要填補至16或32個位元且重排序以匹配雷達子系統之資料格式。填補及重排序可組態於暫存器rw_mem_rd_cfg中。位元時鐘頻率可為可組態的,例如3.2 kHz至50 MHz。在此實例中,利用400 MHz時鐘對RSPI 400模組計時,且內部記憶體410之大小為4 kb,亦即1 k×32。
現將參看 8 描述在SPI主機110中執行之用於將資料傳送至資料通信及處理系統100中之周邊裝置的方法。如上文所描述,SPI主機110包含記憶體111及串列傳輸及接收單元112,該記憶體包含封包之清單。每一封包包含與時間參數相關聯之資料,該時間參數指示資料要在何時傳送至周邊裝置。該方法包含以下動作。 動作810
SPI主機110等待串列傳輸及接收單元112之觸發信號開始處理封包之清單。
觸發信號可為來自資料通信及處理系統100之外部信號。串列傳輸及接收單元112可在接收外部信號之後開始處理封包之清單。串列傳輸及接收單元112亦可在自接收外部信號起等待可組態時間之後開始處理封包之清單。
觸發信號亦可為具有可組態絕對時間之計時器,且串列傳輸及接收單元112可在計時器到期時開始處理封包之清單。 動作820
串列傳輸及接收單元112開始處理封包之清單,諸如自記憶體111讀出封包之清單,自含有封包之特定組態的封包標頭獲得資訊,該資訊諸如開始時間、封包長度、位元次序及CPHA模式、至下一封包之指標等。 動作830
串列傳輸及接收單元112檢查與資料相關聯之時間參數且等待直至是時候傳送封包中之資料。 動作840
串列傳輸及接收單元112在根據與資料相關聯之時間參數的時間傳送封包之清單中之資料。串列傳輸及接收單元112繼續處理封包之清單直至所有封包皆已被發送。封包標頭中之pkt_irq欄位用於在封包被完全處理時產生中斷pkt。
串列傳輸及接收單元112可在循環結構中傳送封包之清單中之資料,使得封包之清單重複可組態次數。
串列傳輸及接收單元112可檢查eol是否被傳遞可組態次數。eol為清單結束標記。當具有此欄位集合之封包已傳送組態於rw_cnt中之次數時,封包清單之處理停止。
總之,SPI主機110、400及其中根據具體實例之方法具有一些優勢。舉例而言,其為周邊裝置之運行時間組態提供可能性,使得組態之傳送適合於所允許時間窗內。其相較於可通常藉由利用軟體控制之先前技術方案達成的情況(甚至在利用專用微控制器之情況下)提供對時序之更精確控制。其提供不太複雜的方法,此係由於主要在硬體中處置時序。其藉由整合至主系統晶片中而不使用外部微控制器組件來節省成本。
當使用詞語「包含(comprise/comprising)」時,應將其解釋為非限制性的,亦即意謂「至少由...組成」。
本文中之具體實例不限於上文所描述之較佳具體實例。可使用各種替代方案、修改及等效物。因此,以上具體實例不應被視為限制由隨附申請專利範圍界定之本發明之範圍。
100:資料通信及處理系統 110:串列周邊介面(SPI)主機 111:記憶體 112:串列傳輸及接收單元 120:主系統晶片 122:中央處理單元 123:本端控制單元LCU 124:隨機存取記憶體 300:雷達系統/雷達 400:SPI主機/RSPI 410:記憶體 420:串列傳輸及接收單元 430:本端CPU LCPU 810:動作 820:動作 830:動作 840:動作 chip selects:晶片選擇輸出接腳 clk:時鐘 D1:資料 D2:資料 D3:資料 DATA:封包/參數 DATA1:資料區域 DATA2:資料指標 Ext:信號 HEADER:標頭 miso:接腳 mosi:接腳 PD1:周邊裝置/周邊電路 PD2:周邊裝置/周邊電路 PD3:周邊裝置/周邊電路 POINTER1:指標 POINTER2:資料指標 t1:時間參數/斜坡/封包/時間 t2:時間參數/斜坡 t3:時間參數 TIME:參數 Ts:訊框/開始時間
將參考隨附圖式更詳細地描述具體實例之實例,在圖式中: [圖1]    為說明其中可實施根據本文中之具體實例之SPI主機之資料通信及處理系統的示意性方塊圖; [圖2]    為說明根據本文中之具體實例之儲存於記憶體中之封包之清單及資料封包之實例結構的示意性方塊圖; [圖3]    為說明雷達系統之示意性方塊圖; [圖4]    為說明根據本文中之具體實例之雷達SPI主機的示意性方塊圖; [圖5]    為說明根據本文中之具體實例之具有資料封包清單之啁啾(chirp)信號的示意圖; [圖6]    為說明根據本文中之具體實例之用於封包標頭之實例結構的示意性方塊圖; [圖7]    為說明根據本文中之具體實例之封包結構的示意圖;且 [圖8]    為說明根據本文中之具體實例之在SPI主機中執行之方法的流程圖。
100:資料通信及處理系統
110:串列周邊介面(SPI)主機
111:記憶體
112:串列傳輸及接收單元
120:主系統晶片
122:中央處理單元
123:本端控制單元LCU
124:隨機存取記憶體
D1:資料
D2:資料
PD1:周邊裝置/周邊電路
PD2:周邊裝置/周邊電路
PD3:周邊裝置/周邊電路
t1:時間參數/斜坡/封包/時間
t2:時間參數/斜坡

Claims (15)

  1. 一種串列周邊介面(SPI)主機(110、400),其用於將資料傳送至一資料通信及處理系統(100)中之一周邊裝置(PD1、PD2、PD3),該SPI主機包含: 一記憶體(111、410),其包含封包之一清單,每一封包包含與一時間參數相關聯之資料,該時間參數指示該資料要在何時傳送至該周邊裝置,其中該時間參數為可組態的;及 一串列傳輸及接收單元(112、420),其用以在根據與該資料相關聯之該時間參數的一時間傳送該清單中之該資料。
  2. 如請求項1之SPI主機(110、400),其中該串列傳輸及接收單元(112、420)由自該資料通信及處理系統(100)接收之一外部信號觸發以開始處理封包之該清單。
  3. 如請求項1之SPI主機(110、400),其中該串列傳輸及接收單元(112、420)在自該資料通信及處理系統接收一起始信號起等待一可組態時間之後開始處理封包之該清單。
  4. 如請求項1之SPI主機(110、400),其中該串列傳輸及接收單元(112、420)在一可組態絕對時間開始處理封包之該清單。
  5. 如請求項1至4中任一項之SPI主機(110、400),其中該串列傳輸及接收單元(112、420)在一循環結構中傳送封包之該清單中之該資料,使得封包之該清單重複一可組態次數。
  6. 如請求項1至4中任一項之SPI主機(110、400),其中與每一封包中之該資料相關聯的該時間參數為一絕對時間或一相對時間。
  7. 如請求項1至4中任一項之SPI主機(110、400),其中與該資料相關聯之至少一個時間參數係使用來自該周邊裝置之事件資訊或一觸發信號來推斷。
  8. 如請求項1至4中任一項之SPI主機(110、400),其中至少一個時間參數及/或該清單中之連續封包之間的一時間差係藉由使用該周邊裝置之操作模式參數來判定。
  9. 如請求項1至4中任一項之SPI主機(110、400),其中至少一個封包中之該資料為待傳送至該周邊裝置之組態資料。
  10. 如請求項1至4中任一項之SPI主機(110、400),其中該周邊裝置為一雷達系統、一影像感測器、一音訊編解碼器、一類比至數位轉換器、一數位至類比轉換器、一馬達控制裝置、一攝影機、一視訊單元中之任一者。
  11. 如請求項1至4中任一項之SPI主機(110、400),其被實施為一主系統晶片(120)中之一功能區塊,該主系統晶片包含用於控制一或多個周邊裝置之操作的一中央處理單元(122)。
  12. 一種資料通信及處理系統(100),其包含一如請求項1至11中任一項之SPI主機(110、400)。
  13. 如請求項12之資料通信及處理系統(100),其為一視訊監視系統、網路音訊系統、雷達系統中之任一者。
  14. 一種在串列周邊介面(SPI)主機(110、400)中執行之用於將資料傳送至資料通信及處理系統(100)中之一周邊裝置的方法,其中該SPI主機(110、400)包含一記憶體(111、410)及一串列傳輸及接收單元(112、420),該記憶體包含封包之一清單,其中每一封包包含與一時間參數相關聯之資料,該時間參數指示該資料要在何時傳送至該周邊裝置,該方法包含: 等待(810)該串列傳輸及接收單元(112、420)之一觸發信號以開始處理封包之該清單; 處理(820)封包之該清單; 根據與該資料相關聯之該時間參數檢查(830)是否是時候傳送一資料封包;及 在根據與該資料相關聯之該時間參數的時間傳送(840)該些資料封包。
  15. 如請求項14之方法,其中該串列傳輸及接收單元在一循環結構中傳送封包之該清單中之該資料,使得封包之該清單重複一可組態次數。
TW109106470A 2019-03-13 2020-02-27 串列周邊介面主機、其中之方法及包含串列周邊介面主機之系統 TWI747176B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19162494.9A EP3709177B1 (en) 2019-03-13 2019-03-13 Serial peripheral interface master
EP19162494.9 2019-03-13

Publications (2)

Publication Number Publication Date
TW202101241A true TW202101241A (zh) 2021-01-01
TWI747176B TWI747176B (zh) 2021-11-21

Family

ID=65801980

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109106470A TWI747176B (zh) 2019-03-13 2020-02-27 串列周邊介面主機、其中之方法及包含串列周邊介面主機之系統

Country Status (6)

Country Link
US (1) US10929333B2 (zh)
EP (1) EP3709177B1 (zh)
JP (1) JP6956219B2 (zh)
KR (1) KR102307573B1 (zh)
CN (1) CN111694771B (zh)
TW (1) TWI747176B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11860730B2 (en) 2021-12-06 2024-01-02 Waymo Llc Low-overhead, bidirectional error checking for a serial peripheral interface
CN117520220B (zh) * 2024-01-08 2024-04-09 湖南恩智测控技术有限公司 自动更新数据方法、系统、装置及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4943963A (en) * 1988-01-19 1990-07-24 A. C. Nielsen Company Data collection and transmission system with real time clock
JP4148290B2 (ja) * 1997-04-01 2008-09-10 ソニー株式会社 信号処理回路
EP1152502A1 (en) * 1999-11-26 2001-11-07 The Furukawa Electric Co., Ltd. Optical fiber for optical amplifying
US6985499B2 (en) * 2000-04-20 2006-01-10 Symmetricom, Inc. Precise network time transfer
US6687769B2 (en) 2001-03-16 2004-02-03 Texas Instruments Incorporated Serial peripheral interface with high performance buffering scheme
US7570078B1 (en) * 2006-06-02 2009-08-04 Lattice Semiconductor Corporation Programmable logic device providing serial peripheral interfaces
JP5113453B2 (ja) * 2007-08-24 2013-01-09 Juki株式会社 シリアル通信装置
WO2010008867A2 (en) * 2008-06-23 2010-01-21 Hart Communication Foundation Wireless communication network analyzer
JP5444911B2 (ja) * 2009-07-23 2014-03-19 富士通株式会社 送受信制御装置、電子機器、データ送信方法及び制御プログラム
US8705395B2 (en) * 2010-06-15 2014-04-22 Jds Uniphase Corporation Method for time aware inline remote mirroring
WO2013179099A1 (en) * 2012-06-01 2013-12-05 Freescale Semiconductor, Inc. Scheduling module and method thereof
CN202940827U (zh) * 2012-09-07 2013-05-15 北京旋极信息技术股份有限公司 一种航电全双工实时以太网数据预处理装置
ITUB20151177A1 (it) * 2015-05-26 2016-11-26 St Microelectronics Srl Interfaccia auto-sincronizzante, dispositivo e procedimento corrispondenti
US10360125B2 (en) * 2016-05-31 2019-07-23 Bristol, Inc. Methods and apparatus to communicatively couple field devices to a remote terminal unit
US10713201B2 (en) * 2017-09-14 2020-07-14 Intel IP Corporation Apparatus, system and method of communicating over a media agnostic (MA) USB connection
CN108268414B (zh) * 2018-03-26 2023-07-21 福州大学 基于spi模式的sd卡驱动器及其控制方法

Also Published As

Publication number Publication date
KR102307573B1 (ko) 2021-10-05
JP2020149692A (ja) 2020-09-17
US10929333B2 (en) 2021-02-23
CN111694771A (zh) 2020-09-22
TWI747176B (zh) 2021-11-21
JP6956219B2 (ja) 2021-11-02
EP3709177B1 (en) 2021-03-03
EP3709177A1 (en) 2020-09-16
KR20200110219A (ko) 2020-09-23
US20200293484A1 (en) 2020-09-17
CN111694771B (zh) 2021-12-21

Similar Documents

Publication Publication Date Title
KR102445344B1 (ko) 시리얼 버스를 위한 수신 클록 캘리브레이션
US9684624B2 (en) Receive clock calibration for a serial bus
TWI747176B (zh) 串列周邊介面主機、其中之方法及包含串列周邊介面主機之系統
US20150199287A1 (en) Camera control interface extension with in-band interrupt
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
WO2019139684A1 (en) Priority scheme for fast arbitration procedures
US10394734B1 (en) Driver for network timing system
US20200201804A1 (en) I3c device timing adjustment to accelerate in-band interrupts
US9830280B2 (en) Multiple access single SDIO interface with multiple SDIO units
US9118611B2 (en) Data synchronization for circuit resources without using a resource buffer
US20130262610A1 (en) Communication system and method for configuring programmable hardware
CN116670617A (zh) 定时触发器同步增强
US10489319B2 (en) Automatic transmission of dummy bits in bus master
US11960434B2 (en) Communication device, communication system, and communication method for transmitting data blocks including signal groups conforming to a serial peripheral interface
US10628077B2 (en) System to acquire analog to digital (ADC) data using high end timer (N2HET) and high end timer transfer unit (HTU)
CN113711191B (zh) 信息处理装置
US12124399B2 (en) Universal serial bus (USB) controller, method of operating a USB controller, and machine vision system
US20240232124A1 (en) Universal serial bus (usb) controller, method of operating a usb controller, and machine vision system
JP2007052515A (ja) シリアルデータ転送システムおよびシリアルデータ転送方法
WO2022235928A1 (en) Multi-chip camera controller system with inter-chip communication
CN117728911A (zh) 一种dTOF系统的时钟校准方法及dTOF系统
US9129666B1 (en) Robust commands for timing calibration or recalibration
JPH0512203A (ja) バス性能測定システム
JP2012150656A (ja) 半導体装置
JP2007072685A (ja) データ転送装置及び情報処理装置