專利名稱:在多個微處理器間傳輸數據的嵌入式計算機系統及方法
技術領域:
本發明涉及一種包含數個微處理器的嵌入式計算機系統,該嵌入式計算機系統的各微處理器間可通過序列式數據總線同時交換數據。
背景技術:
隨著計算機科技的發展,具有多個功能模塊單元的嵌入式計算機系統亦被廣泛地應用。已知嵌入式計算機系統中,各功能模塊皆具有微處理器以控制各功能模塊執行預定的功能,并且各微處理器可以互相傳送并接收數據。
通常嵌入式計算機系統中,微處理器可以支持以序列式數據傳輸方式。然而已知嵌入式計算機系統并不采用序列式數據傳輸方式來進行微處理器之間的數據傳輸。這主要是基于以下二個原因。
第一,已知嵌入式計算機系統中,缺乏適當的控制機制以控制微處理器之間利用序列式數據總線進行數據傳輸,因而可能會造成數據遺失或錯誤。第二,當任兩個微處理器在序列式數據總線上建立溝通機制以進行數據交換時,該溝通機制將占用序列式數據總線,其它微處理器必須等待上筆數據交換動作結束后,方可利用序列式數據總線進行數據交換。這種等待的狀況會影響到整個嵌入式計算機系統數據傳輸的效率。此一問題將隨著嵌入式計算機系統具有越多功能模塊,亦即具有越多微處理器而更形惡化。
有鑒于前述兩個原因,已知嵌入式計算機系統中,二個微處理器之間的數據傳輸是藉由共享存儲器(shared memory)。由第一微處理器將數據置于共享內存,由第二微處理器實時或定時將數據取出。當二個微處理器持續在傳輸數據時,若第二微處理器無法及時將數據自共享內存取出以空出內存空間,則共享內存將不會有足夠的空間儲存即將到來的數據,而使數據無法順利地傳輸。也就是說,已知這種數據傳輸方式,共享內存容量將成為數據順利傳輸的限制因素。然而,隨著嵌入式計算機系統功能模塊的增加以及各微處理器所處理的數據愈加復雜,共享內存的容量需求越來越高,以致于增加了嵌入式計算機系統的成本。
發明內容
本發明的一目的在于提供一種包含數個微處理器的嵌入式計算機系統,各微處理器間可通過序列式數據總線交換數據。
本發明的另一目的在于提供一種應用于嵌入式計算機系統的數據傳輸方法,其可控制嵌入式計算機系統的各微處理器間通過序列式數據總線交換數據。
本發明的嵌入式計算機系統包含一第一微處理器,一第二微處理器,以及一序列式數據總線。第一微處理器包含第一傳輸控制程序。第二微處理器包含第二傳輸控制程序。序列式數據總線可供第一微處理器將一筆預定的第一傳輸數據傳輸至第二微處理器中。第一微處理器的第一傳輸控制程序會先依照一預定的數據切割規則將該筆預定的第一傳輸數據切割成多段數據信息,而后經由序列式數據總線依序傳送至第二微處理器。接著第二微處理器的第二傳輸控制程序會依照一相對應的數據重組規則將所接收到的該等數據信息加以重組以形成預定的第一傳輸數據。
本發明的嵌入式計算機系統中,借由第一傳輸控制程序將預定的傳輸數據以預定的數據切割規則切割成多段數據信息,然后藉由第二傳輸控制程序以相對應于數據切割規則的數據重組規則將所接收的多段數據信息重組為原先的傳輸數據。因此本發明嵌入式計算機系統的各微處理器得以通過序列式數據總線交換數據,仍可確保數據于序列式數據傳輸的正確性。此外,借由將傳輸數據分割為數段數據信息,以使序列式數據總線在各段數據信息傳送間的空檔處于閑置狀況,可使不同的微處理器得以利用各自傳送間的空檔同時利用序列式數據總線傳送數據,以減少等待時間。
關于本發明的優點與精神可以藉由以下的發明詳述及附圖得到進一步的了解。
附圖簡述
圖1為本發明嵌入式計算機系統的方塊圖。
圖2為本發明數據切割方法的示意圖。
圖3為本發明硬件架構的示意圖。
圖4為本發明傳輸前處理機制示意圖。
圖5為本發明傳輸后處理機制示意圖。
圖6為本發明嵌入式計算機系統的數據傳輸方法的流程圖。
圖7為本發明數據傳輸方法的流程圖。
附圖符號說明10嵌入式計算機系統12第一微處理器14第二微處理器16序列式數據總線18第一傳輸控制程序20第二傳輸控制程序22第一直接存儲器存取模塊24第二直接存儲器存取模塊30第一傳輸數據32標題信息段33數據信息段 34數據信息段36數據信息段 38數據信息段40數據信息段 43第一運算單元44第一內存45第二運算單元46第二內存52第一傳輸等待區54第二傳輸等待區 56第一接收等待區58第二接收等待區具體實施方式
請參閱圖1,圖1為本發明嵌入式計算機系統(embedded computersystem)10的方塊圖。本發明嵌入式計算機系統包含多個微處理器。本發明嵌入式計算機系統可應用為非個人計算機式的嵌入式計算機系統(non-PCembedded computer system),以令各微處理器間得以利用序列式數據總線溝通數據。
在一實施例中,本發明嵌入式計算機系統10包含一第一微處理器12、一第二微處理器14,以及一序列式數據總線16。第一微處理器12以及第二微處理器14皆連接至序列式數據總線16,并可經由序列式數據總線16傳輸數據。
第一微處理器12與第二微處理器14分別包含一第一傳輸控制程序18與一第二傳輸控制程序20。第一傳輸控制程序18以及第二傳輸控制程序20是為相同的程序模塊,分別用以控制第一微處理器12與第二微處理器14數據傳送或接收的動作。第一微處理器12與第二微處理器14分別包含一第一直接存儲器存取模塊(Direct Memory Access Module)22與一第二直接存儲器存取模塊24。
當第一微處理器12欲將一筆預定的第一傳輸數據(未顯示于圖1)傳送至第二微處理器14時,第一傳輸控制程序18會先依照一預定的數據切割規則(data cutting rule)將第一傳輸數據切割成多段數據信息(multiplesections of data messages)。當第一微處理器12將第一傳輸數據傳送至第二微處理器14時,第一微處理器12是利用第一直接存儲器存取模塊22將該多段數據信息傳送至第二微處理器14。該多段數據信息是經由序列式數據總線16依序傳送至第二微處理器14。接著第二微處理器14的第二傳輸控制程序20會依照一相對應的數據重組規則(data reconstruction rule)將所接收到的該等數據信息加以重組,以形成第一傳輸數據。
請參閱圖2,圖2為圖1嵌入式計算機系統10依據其數據切割規則(datacutting rule)切割第一傳輸數據30的示意圖。以下將針對第一傳輸控制程序18依照預定的數據切割規則對第一傳輸數據30進行切割的過程詳加說明。首先,根據第一傳輸數據30的內容,產生一標題信息段32。標題信息段32用以紀錄第一傳輸數據30的數據長度信息(Data Length Information)以及數據種類信息(Data Type Information)。數據長度信息記載第一傳輸數據30的總容量單位,而數據種類信息則記載第一傳輸數據30的檔案形式。
然后,第一傳輸數據30被依序切割成多段數據信息33、36、38、40。被依序切割的多段數據信息中,位于首段的數據信息33與標題信息段32組合而成一段數據信息,并被視為首段數據信息34。后續各段數據信息36、38、40則僅包含來自第一傳輸數據30的數據信息,并且此三段數據信息36、38、40為三個具有等長的信息的數據段(data field)。首段數據信息34以及其它后續段數據信息36、38、40的數據長度相等。
第一微處理器12的第一傳輸控制程序18于切割了第一傳輸數據30后,依序將多段數據信息利用第一直接存儲器存取模塊22經由序列式數據總線16傳送至第二微處理器14。當各段數據信息34、36、38、40等被依序傳送至第二微處理器14時,第二傳輸控制程序20首先利用首段數據信息34中標題信息段32所記錄的信息,得知本次傳送的數據信息的段落數目。由于標題信息段32所記錄有第一傳輸數據的數據長度信息,并且被切割后形成的每段數據信息的長度相等,因此第二傳輸控制程序20于接收到首段數據信息34后即可據此得知共有多少段數據信息需要被傳送。第二傳輸控制程序20并可計算所接收的數據信息段數,并判斷傳輸是否完成。
圖1的本發明嵌入式計算機系統(embedded computer system)10亦可用來將傳輸數據由第二微處理器14傳輸至第一微處理器12。由于第一傳輸控制程序18以及第二傳輸控制程序20是相同的程序模塊,第二傳輸控制程序20可利用上述說明的第一傳輸控制程序18的控制方式來進行。在另一實施例中,有一第二傳輸數據需由第二微處理器14傳輸至第一微處理器12,第二傳輸控制程序20及依照上述的數據切割規則將第二傳輸數據切割成多段數據信息,而后經由序列式數據總線16依序傳送至第一微處理器12。接著第一微處理器12的第一傳輸控制程序18會依照相對應數據重組規則將所接收到的該等數據信息加以重組以形成第二傳輸數據。
請參閱圖3,圖3為圖1第一微處理器12及第二微處理器14的硬件系統方塊圖。如圖3所示,第一微處理器12的硬件系統包含一第一運算單元43,一第一內存44,以及第一直接存儲器存取模塊22。相對地,第二微處理器14的硬件系統包含一第二運算單元45,一第二內存46,以及第二直接存儲器存取模塊24。第一內存44包含一第一傳輸等待區52及一第一接收等待區56。第二內存46包含一第二傳輸等待區54及一第二接收等待區58。而前述的第一傳輸控制程序18以及第二傳輸控制程序20(圖3中未顯示)是在上述硬件系統中執行,并用以控制上述硬件系統。
當第一微處理器12欲將第一傳輸數據30傳送至第二微處理器14時,第一傳輸控制程序18將第一傳輸數據30切割為多段數據信息并且暫存于第一內存44的第一傳輸等待區52,接著依序經由序列式數據總線16傳送至第二內存46的第二接收等待區54。第二傳輸控制程序20會根據總切割段數以判斷傳送是否完成。第二傳輸控制程序20讀取第二接收等待區54,根據標題信息段32以判斷接收是否完成,并將該多段數據信息重組為原先的第一傳輸數據。
當第二微處理器14有一第二傳輸數據欲傳送至第一微處理器12,第二傳輸控制程序20亦可利用上述方法傳送至第一微處理器12。在本發明嵌入式計算機系統10中,傳輸數據的兩方可同時進行傳送以及接收的動作,互相傳送/接收數據的微處理器間可同時傳送并且接收數據信息段。此外,傳送或接收的動作是利用第一直接存儲器存取模塊22以及第二直接存儲器存取模塊50以進行,因此數據得以直接自第一內存以及第二內存之間交換而不需通過第一運算單元43或第二運算單元45。
請參閱圖4,圖4為嵌入式計算機系統10的傳輸前處理機制示意圖。本發明嵌入式計算機系統10中,第一傳輸控制程序18及第二傳輸控制程序20皆利用圖4所示的傳輸前處理機制來控制數據的傳送及接收。首先,第一傳輸控制程序18及第二傳輸控制程序20皆包含以下參數傳送參數(fTrarsmitting)、接收參數(fReceiving)、末數據信息段參數(fLastpacket)、待傳送數據信息段數(Total Sending Packet Number)、以及待接收數據信息段數(Toatl receiving packet Number)。傳送參數與接收參數分別用以指示微處理器目前是否正在執行傳送與接收的動作。傳輸控制程序會根據微處理器目前所執行的狀態進行相對應的處置。在一實施例中,傳送參數或接收參數等于0分別代表微處理器目前并未傳送或接收數據段落,相對的以1代表正進行傳送或接收。末數據信息段參數用以指示接收動作是否已經完成。而待傳送數據信息段數或待接收數據信息段數則用以分別記錄目前尚未傳送或接收的信息段數。
如圖4所示,第一傳輸控制程序18及第二傳輸控制程序20借由分別運作本傳輸前處理機制,以先分別判斷其所控制的第一微處理器12及第二微處理器14目前的傳送或接收狀況,再進一步根據傳送或接收的狀態分別設定各自所屬的直接存儲器存取模塊22、24,并且執行傳輸動作。在此,根據傳送或接收狀況,本傳輸機制可能產出四種判斷結果正在傳送且正在接收,正在傳送但并未接收,正在接收但并未傳送,并未傳送也并未接收。上述四種狀況的傳送參數以及接收參數應分別呈現(1,1),(1,0),(0,1),(0,0)。
如圖4所示,本傳輸前處理機制是由步驟100開始。在步驟100中,根據傳送參數以判斷是否正在傳送數據,若是則進行步驟102,若否則進行步驟104。在步驟100中,若傳送參數為0表示并未傳送數據;傳送參數為1則表示正在傳送數據。在步驟102中,根據接收參數以判斷是否正在接收數據。若是,則設定以直接存儲器存取方式持續傳送及持續接收數據段落。若否,則設定以直接存儲器存取方式持續傳送數據段落。在步驟102中,若接收參數為0表示并未接收數據;接收參數為1表示正在接收數據。
當步驟100中傳送參數為0而判斷并未傳送數據時,進行步驟104以進一步判斷傳輸等待區是否閑置。在步驟104中,如傳輸等待區為閑置,則確定無待傳送數據;如傳輸等待區并非閑置,則讀取傳輸等待區的數據并進行相對應的動作。當步驟104中指出傳輸等待區亦為閑置時,進行步驟106以進一步檢查接收參數,以判斷是否正在接收數據。若正在接收數據,則設定以直接存儲器存取方式持續接收數據段落。若并沒有在接收數據,則表示系統閑置。
綜合以上各步驟的說明,本傳輸前處理機制將可判斷微處理器是上述四種狀況中的何者。接著,根據該四種狀況(1,1),(1,0),(0,1),(0,0)分別設定所屬的直接內存傳送以及/或接收數據。當狀況(1,1)時,設定直接內存傳送以及接收數據。當狀況(1,0)時,設定直接內存傳送數據。當狀況(0,1)時,設定直接內存接收數據。當狀況(0,0)時,系統閑置。
請參閱圖5,圖5為嵌入式計算機系統10的傳輸后處理機制示意圖。本發明嵌入式計算機系統10中,第一傳輸控制程序18及第二傳輸控制程序20皆利用圖5所示的傳輸前處理機制來控制數據的傳送及接收。首先,第一傳輸控制程序18及第二傳輸控制程序20皆包含以下參數接收參數(fReceiving)、末數據信息段參數(fLastpacket)、以及待接收數據信息段數(Toatl receiving packet Number)。接收參數分別用以指示微處理器目前是否正在執行接收的動作。傳輸控制程序會根據微處理器目前所執行的狀態進行相對應的處置。在一實施例中,接收參數等于0分別代表微處理器目前并未接收數據段落,相對的以1代表正進行接收。末數據信息段參數用以指示接收動作是否已經完成。而待接收數據信息段數則用以分別記錄目前尚未接收的信息段數。
如圖5所示,本傳輸后處理機制是由步驟400開始,在步驟400中,根據末數據信息段參數決定是否已接收到完整的數據,若不是則進行步驟401,若是則將此完整數據放到接收數據等待區。在步驟401中,根據接收參數以判斷是否正接收數據,若否,則根據標頭數據計算出待接收數據段數,在步驟401中,若接收參數為1則表示正在接收數據,若接收參數為0則表示并未接收數據。
如圖5所示。當計算出待接收數據段數后,則進行步驟402,在步驟402中,根據待接收數據段數判斷是否已接收到完整的數據。若是,則將完整數據放到接收數據等待區。若否,則繼續接收數據。
請參閱圖1、圖4及圖5,在嵌入式計算機系統10中,第一傳輸控制程序18以及第二傳輸控制程序20分別以圖4所示的傳輸前處理機制與圖5所示的傳輸后處理機制來控制傳送以及接收的動作。第一微處理器12以及第二微處理器14因此可利用傳輸機制所同時包含的傳送以及接收功能互相交換數據。此外,當該嵌入式計算機系統具有其它微處理器時,其它微處理器亦可利用第一微處理器12以及第二微處理器14交換數據時各數據段落間的空檔傳輸數據,而不須等待第一微處理器12以及第二微處理器14完成數據交換后方能運作。
請參閱圖6,圖6為本發明應用于一嵌入式計算機系統的數據傳輸方法的流程圖。本發明亦提供一種數據傳輸方法應用于如圖1所示的嵌入式計算機系統10中,利用序列時數據總線16將數據由第一微處理器12傳輸至第二微處理器14,或將數據由第二微處理器14傳輸至第一微處理器12。以下利用第一傳輸數據30由第一微處理器12傳輸至第二微處理器14的情況來說明本發明數據傳輸方法,至于其所需的硬件系統與前述相同。并且本發明數據傳輸方法中亦根據如圖2及其說明的數據切割規格及相對應的數據重組規則進行。
如圖6所示,在步驟201中,根據前述的數據切割規則切割第一傳輸數據30,以產生多段數據信息34、36、38、40。接著在步驟203中,第一微處理器12經由序列式數據總線16依序傳送多段數據信息34、36、38、40至第二微處理器14。接著在步驟205中,第二微處理器根據相對應于數據切割規則的數據重組規則重組多段數據信息34、36、38、40以形成第一傳輸數據30。
步驟201所述的數據切割規則即為圖2及其說明的數據切割規則,所切割而成的各段數據信息段落34、36、38、40皆為等長,其中首段數據信息34包含標題信息段32,另三段資36、38、40數據信息分別為三個數據段。標題信息段32紀錄第一傳輸數據30的數據長度以及數據種類,因此標題信息段32包含的第一傳輸數據的一第一數據長度。
請參閱圖7,圖7為圖6數據傳輸方法的步驟205中判斷傳輸是否完畢的詳細流程圖。如同前述,本發明數據傳輸方法包含傳送以及接收的動作。第二微處理器14于接收數據時,進一步進行下列步驟以判斷數據接收的動作是否完成。在步驟301中,根據第一數據長度得知被傳輸數據信息的段落數目。由于各數據段落等長的特性,因此可根據第一數據長度以計算出數據信息的段落數目,這個段落數目便是應接收信息段落的數目。接著,在步驟303中,計算已接收的數據信息段落的數目。在步驟305中,比較步驟301所計算的應接收信息段落的數目以及步驟303中所計算的已接收的數據信息段落的數目,以判斷傳輸是否完畢。
相較于已知技術,本發明的嵌入式計算機系統,經由傳輸控制程序的控制將各筆傳輸數據以預定的數據切割規則切割成多段數據信息,并且接收多段數據信息并且重組為原先的傳輸數據。本發明嵌入式計算機系統的各微處理器得以通過序列式數據總線交換數據,仍可確保數據于序列式數據庫傳輸的正確性。此外,藉由將傳輸數據分割為數段數據信息,以使序列式數據總線于各段數據信息傳送間的空檔處于閑置狀況,可使不同的微處理器得以利用各自傳送間的空檔同時利用序列式數據總線傳送數據,以減少等待時間。
借由以上較佳具體實施例的詳述,是希望能更加清楚描述本發明的特征與精神,而并非以上述所揭露的較佳具體實施例來對本發明的范疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排于本發明所欲申請的專利范圍的范疇內。
權利要求
1.一種嵌入式計算機系統,包含一第一微處理器,包含有一第一傳輸控制程序;一第二微處理器,包含有一第二傳輸控制程序;一序列式數據總線,可供該第一微處理器將一筆預定的第一傳輸數據傳輸至該第二微處理器中;其中,該第一微處理器的第一傳輸控制程序會先依照一預定的數據切割規則將該筆預定的第一傳輸數據切割成多段數據信息,而后經由該序列式數據總線依序傳送至該第二微處理器,接著該第二微處理器的第二傳輸控制程序會依照一相對應的數據重組規則將所接收到的該等數據信息加以重組以形成該預定的第一傳輸數據。
2.如權利要求1所述的嵌入式計算機系統,其中,該數據切割規則是將該預定的第一傳輸數據切割成多段等長的數據信息,該多段等長的數據信息包含一標題信息段以及多個數據段。
3.如權利要求2所述的嵌入式計算機系統,其中,該標題信息段是紀錄該預定的第一傳輸數據的一數據長度信息以及一數據種類信息。
4.如權利要求3所述的嵌入式計算機系統,其中,該數據重組規則是依序將等長的該多段數據信息中的該標題信息段去除,并將該多個數據區依序重組以形成該預定的第一傳輸數據。
5.如權利要求1所述的嵌入式計算機系統,其中,該第一微處理器進一步包含一第一直接存儲器存取模塊。
6.如權利要求5所述的嵌入式計算機系統,其中,該第一微處理器是利用該第一直接存儲器存取模塊將該多段數據信息傳送至該第二微處理器。
7.如權利要求1所述的嵌入式計算機系統,其中,該第二微處理器的第二傳輸控制程序亦可依照該預定的數據切割規則將另一筆預定的第二傳輸數據切割成多段數據信息,而后經由該序列式數據總線依序傳送至該第一微處理器,接著該第一微處理器的第一傳輸控制程序會依照該相對應數據重組規則將所接收到的該等數據信息加以重組以形成該筆預定的第二傳輸數據。
8.如權利要求7所述的嵌入式計算機系統,其中,該第二微處理器進一步包含一第二直接存儲器存取模塊。
9.如權利要求8所述的嵌入式計算機系統,其中,該第二微處理器是利用該第二直接存儲器存取模塊將該多段數據信息傳送至該第一微處理器。
10.如權利要求1所述的嵌入式計算機系統,其中,該計算機系統是為非個人計算機式的嵌入式計算機系統。
11.一種應用于一嵌入式計算機系統的數據傳輸方法,該嵌入式計算機系統包含一第一微處理器、一第二微處理器以及一序列式數據總線,該數據傳輸方法是利用該序列式數據總線將一筆預定的第一傳輸數據由該第一微處理器傳輸至該第二微處理器,該數據傳輸方法包含下列步驟(1)根據一數據切割規則切割該筆預定的第一傳輸數據,以產生多段數據信息;(2)該第一微處理器會經由該序列式數據總線依序傳送該多段數據信息至該第二微處理器;以及(3)該第二微處理根據一相對應的數據重組規則重組該多段數據信息以形成該預定的第一傳輸數據。
12.如權利要求11所述的數據傳輸方法,其中,該步驟(1)是將該該筆預定的第一傳輸數據切割成多段等長的數據信息,該多段等長的數據信息包含一標題信息段以及多個數據段。
13.如權利要求12所述的數據傳輸方法,其中,該標題信息段包含該筆預定的第一傳輸數據的一第一數據種類,以及該筆預定的第一傳輸數據的一第一數據長度。
14.如權利要求13所述的數據傳輸方法,其中,該步驟(3)進一步包含以下步驟(3-1)根據該第一數據長度得知該多段數據信息的段落數目;(3-2)計算已接收的數據信息段落的數目;以及(3-3)比較該信息段落的個數以及已接收的數據信息的段落數目,以判斷傳輸是否完畢。
全文摘要
本發明提供一種嵌入式計算機系統,其包含一第一微處理器,一第二微處理器及一序列式數據總線。第一微處理器包含第一傳輸控制程序。第二微處理器包含第二傳輸控制程序。序列式數據總線可供第一微處理器將一筆預定的第一傳輸數據傳輸至第二微處理器中。第一傳輸控制程序會先依照一預定的數據切割規則將第一傳輸數據切割成多段數據信息,而后經由序列式數據總線依序傳送至第二微處理器。接著第二微處理器的第二傳輸控制程序會依照一相對應的數據重組規則將所接收到的該等數據信息加以重組以形成第一傳輸數據。
文檔編號G06F15/16GK1677379SQ200410033339
公開日2005年10月5日 申請日期2004年4月2日 優先權日2004年4月2日
發明者鄭森勵 申請人:明基電通股份有限公司