本發明涉及模塊系統及基于模塊的機器人系統,并模塊系統的更新方法。
背景技術:
最近,以教育、興趣、研究、生產等多種目的,提出基于多種模塊系統。包括在這些模塊基礎系統的模塊,可分別執行特定的功能,提供可使模塊相互連接形成模塊組合。在這種情況下,各自的模塊相互由電性連接,可使接發能量、信號、數據等的被提供。用戶可根據提供的手冊或自己創作的方式,組裝模塊制作執行特性目的的模塊系統。
這些現有的模塊系統有必要為了變更使用目的,或更新為更好的版本,由模塊化個別的更新驅動模塊系統的程序。在這種情況下,將構成模塊系統的模塊由個別單位進行分離,且每分離的模塊需要用于更新的作業,從物理性非常不便,且需要相當的時間。
此外,現有的模塊系統不能一次性的開發對模塊系統整個運營的程序,且個別的開發模塊單位的程序進行編譯,所以,對開發有困難。
技術實現要素:
技術課題
本發明的實施例,將提供包括多個模塊的模塊系統中,可更新各模塊數據的模塊系統及模塊系統的更新方法。
本發明的實施例,將提供由網絡連接的包括多個模塊的模塊系統中,可從模塊系統整個程序代碼,生成各模塊化執行代碼的多模塊編譯系統及多模塊編譯方法。
技術方案
根據本發明的一個側面,可提供一種模塊系統,包括相互能夠通信的多個模塊,所述模塊系統,其包括:主模塊,與外部設備通信;及子模塊,一個以上由網絡連接,使能夠與所述主模塊數據通信,且在所述一個以上的子模塊中,所述主模塊通過所述網絡將更新數據發送給與所述子模塊運營有關的數據更新必要的對象子模塊。
此外,可提供所述更新數據是用于所述對象子模塊固件軟件及運營體系軟件及驅動的數據中一個以上的模塊系統。
此外,可提供只接收通過所述網絡發送的,與數據目的地地址一致的模塊的數據的模塊系統。
此外,可提供所述網絡是同種及異種通信的模塊系統。
此外,可提供所述網絡利用控制器局域網(can;controllerareanetwork)總線的模塊系統。
此外,可提供所述主模塊將所述更新數據1次的發送到所述對象子模塊之后,2次的再發送,且所述對象子模塊比較從所述主模塊的所述1次接收的更新數據和所述2次接收的更新數據,驗證所述更新數據的完整性的模塊系統。
此外,可提供所述更新數據具有錯誤時,所述主模塊將所述更新數據再發送到對應于所述錯誤的所述對象子模塊的模塊系統。
此外,可提供所述主模塊從所述外部設備,接收用于所述對象子模塊的所述更新數據的模塊系統。
此外,可提供所述主模塊接收對所述對象子模塊全部的所述更新數據全部之后,將對應于所述對象子模塊各個的所述更新數據,發送到各個所述對象子模塊的模塊系統。
此外,可提供所述主模塊對所述對象子模塊,一個個依次地接收對應于各個所述對象子模塊的所述更新數據,發送給所述對象子模塊的模塊系統。
此外,可提供所述主模塊與所述外部設備,以usb、irda、wifi、uwb、藍牙、zigbee、cdma、wcdma、lte、lte-a中任何一個方式通信的模塊系統。
此外,可提供所述主模塊也能更新與自身運營有關的數據的模塊系統。
此外,可提供配置多個所述子模塊,構成由第一有線網絡連接的第一子系統,和由第二有線網絡連接的第二子通信,所述第一子系統的至少一個子模塊與所述第二子系統的至少一個子模塊,由無線通信連接的模塊系統。
根據本發明的一個側面,可提供一種模塊系統的更新方法,使能夠數據通信包括相互由網絡連接的多個模塊,所述模塊系統的更新方法,其步驟包括:主模塊從外部設備接收對應于數據更新對象子模塊的更新數據;所述主模塊將所述更新數據發送到所述對象子模塊;及利用接收的所述更新數據,更新所述對象子模塊。
此外,可提供所述更新數據是用于所述對象子模塊的固件軟件及運營體系軟件及驅動的數據中一個以上的模塊系統的更新方法。
此外,可提供只接收通過所述網絡發送的,與數據目的地地址一致的模塊的數據的模塊系統的更新方法。
此外,可提供還包括所述主模塊確認執行更新的所述對象子模塊的個數,將各個對應于所述對象子模塊的所述更新數據,依次地發送給所述對象子模塊的模塊系統的更新方法。
此外,可提供還包括驗證所述更新數據的完整性,所述更新數據具有錯誤時,所述對象子模塊向所述主模塊請求所述更新數據的再發送;及所述主模塊從所述對象子模塊收到所述更新數據的再發送請求時,將所述更新數據再發送到所述對象子模塊的模塊系統的更新方法。
此外,可提供還包括所述主模塊將模塊更新的請求消息發送給所述對象子模塊,從所述對象子模塊接收對所述模塊更新的準備完畢消息的模塊系統的更新方法。
根據本發明的一個側面,可提供一種基于模塊的機器人系統,包括能夠相互通信的多個模塊,所述基于模塊的機器人系統,其包括:主模塊,與外部設備通信;子模塊,一個以上由網絡連接,使能夠與所述主模塊數據通信;及電源模塊,為了給所述主模塊和所述子模塊供給電源,電性連接在所述主模塊及所述子模塊,且所述主模塊在所述一個以上的子模塊中,通過所述網絡將更新數據發送給與所述子模塊運營有關的數據更新必要的對象子模塊。
此外,可提供所述更新數據是用于所述對象子模塊的固件軟件及運營體系軟件及驅動的數據中一個以上的基于模塊的機器人系統。
此外,可提供所述電源模塊與所述主模塊由一體形成的基于模塊的機器人系統。
技術效果
根據本發明的一個實施例的模塊系統及模塊系統的更新方法,對多個模塊各自的數據更新,不個別的執行,而且可整體的執行,可方便并時間上有效率的更新構成模塊系統的個別模塊。
根據本發明的一個實施例的多模塊編譯系統及多模塊編譯方法,可從模塊系統整個程序代碼,快速有效地生成個模塊化執行代碼。由此,由多個模塊構成的模塊系統中,從整個程序代碼生成模塊化代碼進行編譯,可方便有效的更新各模塊。
附圖說明
圖1是示出根據本發明的一個實施例的模塊系統的大概構成的框圖。
圖2是示出根據本發明的一個實施例,在模塊系統接發模塊間數據的框圖。
圖3是示出在模塊系統接發模塊間的數據幀。
圖4是示出根據本發明的其他實施例的模塊系統大概構成的框圖。
圖5是示出根據本發明的一個實施例的模塊系統的模塊化更新中,模塊通信端執行步驟的順序圖。
圖6是示出根據本發明的一個實施例的模塊系統的模塊化更新中,主模塊執行步驟的順序圖。
圖7是示出根據本發明的一個實施例的模塊系統的模塊化更新中,子模塊執行步驟的順序圖。
圖8是示出根據本發明的一個實施例的模塊系統中,計算機、主模塊、對象子模塊間的消息流程圖。
圖9是示出根據本發明的一個實施例,基于模塊的機器人系統構成的原理圖。
圖10是示出在圖9的個別模塊的斷面圖。
圖11是示出根據本發明的一個實施例的多模塊編譯系統的大概構成的框圖。
圖12a及圖12b是示出根據本發明的一個實施例的多模塊編譯系統的圖形用戶界面單元。
圖13是示出根據本發明的一個實施例的多模塊編譯方法的執行步驟的順序圖。
圖14是在圖13中的代碼生成器(模塊代碼生成單元)的執行步驟的順序圖。
圖15是在圖14中代碼生成器(模塊代碼生成單元)的事件分析步驟的順序圖。
圖16a是示出根據本發明的一個實施例,在多模塊編譯系統被編碼的程序代碼的對模塊類的代碼列表。
圖16b是示出其他模塊被附加識別的,對模塊的類別的代碼列表。
圖16c是示出在識別的模塊間接發的,對事件處理的代碼列表。
圖17a及圖17b是示出根據本發明的一個實施例,通過多模塊編譯系統生成的模塊化代碼列表。
具體實施方式
以下,參照附圖可使本發明領域的技術人員容易地實施,對本發明的實施例進行詳細地說明。但是,本發明可由多種相異的形態被體現,且不限定于在此說明的實施例。并且,為了在圖明確地說明本發明,與說明無關的部分進行了省略。
在本說明書使用的用語只是為了說明特定的實施例被使用,但不是限定本發明的意圖。單數的表現在文字上沒有明確的指定其他意思外,可包括復數的表現。
在本說明書中,“包括”、“具有”或“具備”等用語是指定在說明書上記載的特征、數字、步驟、動作、構成要素、部件或組合這些的存在,可以理解為不預先排除一個或其以上的其他特征或數字、步驟、動作、構成要素、部件或組合這些的存在或附加可能性。
此外,以下的實施例是為了給本領域中具有平均知識的人員更明確地說明被提供的,在圖的要素形象及大小等,可為了更明確地說明而被夸張。
參考以下附圖對本發明進行詳細地說明。
模塊系統
圖1是示出根據本發明的一個實施例的模塊系統的大概構成的框圖。
參照圖1,根據本發明的一個實施例,模塊系統200在包括相互通信可行的多個模塊210、220、230、240、250、260、270的模塊系統200中,可整體的執行對各自模塊210、220、230、240、250、260、270的更新。
在本發明的實施例中,‘模塊’的意思是為了執行模塊特征功能的功能單位。所述‘模塊’可使進行相互通信的由網絡被連接,也可由物理性的被分離成各個,也可布置在相同的物理空間內。
在本發明的實施例,‘主’及‘子’的用語在說明多種模塊中,被用于相互區別的目的,不意味著‘主’和‘子’在功能上具有主從關系。
在本發明的實施例,‘更新’意味著與各個模塊的運營有關的數據更新,更新數據可以是模塊的固件軟件、模塊的運營體系軟件,及用于模塊的驅動數據中的任何一個以上。
所述模塊系統200可包括主模塊210,和可與所述主模塊210進行數據通信,網絡連接的一個以上的子模塊220、230、240、250、260、270。
所述主模塊210可與外部設備100,例如,筆記本電腦、臺式電腦或如工作站的計算機,或如移動電話、個人數字助理pda、智慧型、電子書的移動設備,進行通信的被連接。所述主模塊210可與所述外部設備100進行通信的被連接,與所述外部設備100相互接發數據,或可接收對所述子模塊220、230、240、250、260、270的更新數據。所述主模塊210與所述外部設備100,可由通用串行總線(usb)、紅外數據通訊(irda)、無線局域網(wifi)、超寬帶(uwb)、藍牙、無線個域網(zigbee)、碼分多址(cdma)、寬帶碼分多址移動通信系統(wcdma)、線終止設備(lte)、長期演進技術(lte-a)中任何一個方式進行通信150。即,所述主模塊210可由usb有線的連接在所述外部設備100,也可通過wifi直接由無線連接,也可通過接入點(ap)無限的連接。
所述子模塊220、230、240、250、260、270與所述主模塊210進行數據通信由網絡連接,作為各個固件升級可行的中央處理器(cpu),可內裝微控制器(mcu;microcontrollerunit)。所述微處理器作為內部存儲器,可包括如閃存、存儲固件的用戶代碼領域,和用于啟動微處理器的引導模式(bootloader)領域。在本實施例,所述子模塊220、230、240、250、260、270各個可以是子通信模塊220、電源模塊230、馬達模塊240、按鈕模塊250、傳感器模塊260、顯示模塊270、攝像機模塊中任何一個。所述傳感器模塊260可以是用于傳感紫外線傳感器、觸覺傳感器、觸摸傳感器、圖像傳感器、超聲波傳感器、指紋識別傳感器、光傳感器、音響傳感器、壓力傳感器、溫度傳感器、加速度傳感器、陀螺儀傳感器、語音識別傳感器等,多種形態的物理信息的手段。
所述子模塊220、230、240、250、260、270可使與所述主模塊210相互接發數據,可由網絡總線202連接,在本實施例,所述網絡總線202可以是只接收通過所述網絡總線202發送的,與數據的目的地地址一致的模塊數據的廣播方式。所述網絡總線202可由串口、局域網(lan)、控制器局域網(can)、usb、irda、wifi、藍牙、zigbee、cdma、wcdma、lte、lte-a等,多種有無線通信方式被構成,也可進行兩種通信。
在本實施例,所述網絡總線202可以是控制器局域網(can;controllerareanetwork)總線。利用can通信時,便于模塊間即插即用的體現,便于廣播網絡的體現,可具有高信賴度,提高系統控制速度和穩定性。
所述主模塊210通過所述網絡總線202,在所述子模塊220、230、240、250、260、270中,給需要所述子模塊的微處理器更新的對象子模塊,可發送更新所需的更新數據。
所述電源模塊230的配置是為了供給所述模塊系統200整個電源,由電性連接在所述主模塊210和其他子模塊220、240、250、260、270,可給所述主模塊210和其他子模塊220、240、250、260、270供給模塊運行所需的電源。所述電源模塊230與外部電源連接,給所述模塊系統200供給電源,或在內部搭載鋰離子電池,可也在所述電池供給儲蓄的電力。
各個的模塊210、220、230、240、250、260、270可具備塊形象的機殼,相鄰的模塊可相互直接物理性的連接,也可利用另外的連接器連接。此外,所述電源模塊230可與所述主模塊210另外的被配置,也可與所述主模塊210一起,一體的形成在一個外殼內被配置。
一方面,在與所述模塊系統200通信可行的連接的外部設備100,可構建用于生成所述模塊系統200的各個模塊210、220、230、240、250、260、270執行代碼的集成開發環境系統(ide;integrateddevelopmentenvironment)。所述集成開發環境系統(ide)可包括用戶界面單元110、模塊代碼生成器120、編譯器130及模塊通信端140。用戶在所述集成開發環境系統上,可生成或修改用于所述模塊系統200的各模塊210、220、230、240、250、260、270運行的程序。所述用戶界面單元110可以是文字用戶界面(cui;characteruserinterface)或圖形用戶界面(gui;graphicuserinterface)中的一個,cui和gui也可以是相互可轉換的界面。所述集成開發環境可支援如java、c++的個體指向編程開發環境。
所述模塊代碼生成器120在所述用戶界面單元110,將編制的程序代碼分割及修改為各模塊210、220、230、240、250、260、270化程序代碼之后,可通過所述編譯器130,生成對應于各模塊的更新數據代碼。生成的所述更新數據代碼通過模塊通信端140,可發送到以有線或無線方式連接150至可通信的所述模塊系統200的主模塊210。
圖2是示出根據本發明的一個實施例,在模塊系統接發模塊間數據的框圖,且圖3是示出在模塊系統接發模塊間的數據幀。
參照圖2及圖3,根據本發明的一個實施例,模塊系統200可通過主模塊210從外部設備100接收數據。構成所述模塊系統200的主模塊210和子模塊220、230、240、250、260、270各個作為固有的識別者,具有地址值。所述標識符可以是媒體訪問控制地址(mac;mediumaccesscontroladdress),也可以是所述模塊分別被制造時,被賦予的固有串口號碼。作為一個示例的本實施例中,所述主模塊210作為地址值可具有001,子通信模塊220作為地址值可具有002。相同地,所述子模塊230、240、250、260、270分別為地址值,可具有003、004、005、006、007。從外部設備100給所述模塊系統200的馬達模塊240發送特定數據時,所述外部設備100向傳送的所述特定數據,可傳送由附加馬達模塊240的地址值004的數據包形態。所述模塊系統200的主模塊210接收所述數據包之后,將所述數據包適應于網絡總線203的協議進行變換,可通過所述網絡總線203,將變換的所述數據包發送到連接在所述網絡總線203的所有模塊220、230、240、250、260、270。在本實施例,所述網絡總線203可以是只接收與數據目的地地址一致的模塊的所述數據的廣播方式。所述網絡總線203可由串口、lan、can、usb、irda、wifi、藍牙、zigbee、cdma、wcdma、lte、lte-a等,多種有無線通信方式被構成,也可進行兩種通信。
在本實施例,所述網絡總線203可以是控制器局域網(can;controllerareanetwork)總線。利用can通信時,便于模塊間即插即用的體現,便于廣播網絡的體現,可具有高信賴度,提高系統控制速度和穩定性。
所述子模塊220、230、240、250、260、270各個比較包括在所述數據包的目標地址值和自身的地址值,判斷所述數據包是否傳達到自身的模塊。在本實施例,所述數據包的目標模塊地址值是004,所以,馬達模塊240可判斷所述數據包發送到自身,且接收此。相反地,其他子模塊220、230、250、260、270通過所述網絡總線202發送的所述數據包的目標地址值與自身的地址值不同,所以,不接收此。
圖3是示出通過所述網絡總線202被傳送的數據幀300的結構。如圖所示,根據本發明的一個實施例,通過網絡總線202傳送的數據幀300可包括告知幀開始的幀起始(sof;startofframe)領域302、介入領域210、控制領域320、數據領域330、檢查數據幀的循環冗余校驗(crc;cyclicredundancycheck)領域340、告知對數據接收應答的ack領域350及告知幀端的幀結束(eof;endofframe)領域360。
所述介入領域210可包括含有成為數據幀300傳送目標的模塊地址信息的id地址312,和所述模塊的內部存儲器地址314,和指令(cm;commandd)316信息。所述cmd信息316包括對目標模塊的更新開始和接收的信息,可包括對所述目標模塊的指令信息。所述控制領域320包括含有在所述數據領域330的數據比特個數的數據長度碼(dlc;datalengthcode)信息。所述數據領域330是傳送到所述目標模塊的有用數據的位置。如示出,根據本實施例的數據幀300包括對目標模塊的id地址312和數據包330,在連接在網絡總線202的模塊中,只與所述id地址312一致的所述目標模塊,才可接收數據包330。
圖4是示出根據本發明的其他實施例的模塊系統大概構成的框圖。
參照圖4,根據示出的本發明的其他實施例,模塊系統400可包括第一模塊系統200,和與所述第一模塊系統200可通信連接的第二模塊系統420。
所述第一模塊系統200與在圖1示出的模塊系統200相同的,可包括與外部設備100可通信連接的主模塊210,和作為子模塊的子通信模塊220、電源模塊230、馬達模塊240、按鈕模塊250、傳感器模塊260及顯示模塊270。所述主模塊210和所述子模塊220、230、240、250、260、270可與如can總線的廣播方式的網絡總線202連接。
所述第二模塊系統420可包括與所述第一模塊系統200的所述子通信模塊220由有線或無線可通信連接的子通信模塊430、攝像機模塊450,及電源模塊440。
所述電源模塊440為了供給所述第二模塊系統420整個電源被配置的,電性連接在其他子模塊430、450,可給各模塊的運行供給必要的電源。各個的模塊430、440、450具備塊形象的外殼,使相鄰的模塊相互直接物理性的被連接,也可利用另外的連接器連接。此外,所述電源模塊440可與所述子通信模塊430另外的配置,也可在一個機殼內一體的形成配置。
與所述第一模塊系統200相同的方式,所述第二模塊系統420可與子模塊430、440、450以廣播方式的網絡總線422被連接。在這種情況下,所述第二模塊系統420的子模塊430、440、450分別為固有的標識符,可具有地址值。所述標識符可具有媒體訪問控制地址(mac地址;mediumaccesscontroladdress),也可以是分別制造所述模塊時,被賦予的固有串口號碼。作為一個示例在本實施例,子通信模塊430作為地址值可具有008,電源模塊440作為地址值具有009,攝像機模塊450作為地址值可具有010。
所述子通信模塊430與所述第一模塊系統200的子通信模塊220可通信的連接,所以,所述第一模塊系統200和所述第二模塊系統420可相互接發數據。如果,所述第一模塊系統200和所述第二模塊系統420,通過子通信模塊220、430以無線接發數據時,所述第一模塊系統200和所述第二模塊系統420,在物理性脫離且沒有連接的位置,也可相互獨立的執行作業,共享作業處理中發生的數據。此外,所述第一模塊系統200和所述第二模塊系統420可相互接發消息,所以,可構建有機性協作的系統。在這種情況下,所述第一模塊系統200的網絡總線202和所述第二模塊系統420的網絡總線422,可以是相同廣播方式的網絡,并且可以是can總線。
根據本實施例,所述第一模塊系統200的子通信模塊220,和所述第二模塊系統420的子通信模塊430,可事先接發并存儲包括在相互對方的模塊系統模塊的地址值。即,第一模塊系統200的子模塊220掌握包括在第二模塊系統420的對模塊430、440、450的地址,可虛擬的識別如同所述第一模塊系統200和所述第二模塊系統420被連接。同樣地,第二模塊系統420的子模塊430也是掌握包括在所述第一模塊系統200的對模塊210、220、230、240、250、260、270的地址,可虛擬的識別如同所述第一模塊系統200和所述第二模塊系統420被連接。
從所述外部設備100向所述第二模塊系統420的攝像機模塊450發送特定數據(消息)時,所述外部設備100以在將傳送的所述特定數據附加所述攝像機模塊450的地址值010的數據包形態,傳送到所述第一模塊系統200的主模塊210。其次,所述第一模塊系統200的主模塊210接收所述數據包之后,將所述數據包適應于所述網絡總線202的協議進行變換,將變換的所述數據包通過所述網絡總線202,可發送到連接在所述網絡總線202的所有子模塊220、230、240、250、260、270。在這種情況下,所述子模塊220、230、240、250、260、270的地址值不是010,所以,子模塊230、240、250、260、270不接收所述數據包的目標地址值與自身地址不同的所述數據包。只是,所述子通信模塊220事先知道,對構成所述第二模塊系統420的模塊430、440、450的地址信息008、009、010,所以,可知與自身連接的第二模塊系統420的攝像機模塊450地址為010。因此,即使所述數據包的目標模塊地址010與自身的地址002不同,也接收所述數據包,可發送到所述第二模塊系統420的子通信模塊430。所述子通信模塊220、430之間的通信402可以是usb、irda、wifi、uwb、藍牙、zigbee、cdma、wcdma、lte、lte-a中任何一個方式。
所述主模塊210可接收從所述外部設備100包括在所述第二模塊系統420的,對模塊430、440、450的更新數據代碼并存儲。所述主模塊210可通過所述子通信模塊220、430,將接收的所述更新數據代碼發送到所述第二模塊系統420。因此,可執行對與所述第一模塊系統200的主模塊210物理性隔離的所述第二模塊系統420的模塊化數據更新。
圖5是示出根據本發明的一個實施例的模塊系統的模塊化更新中,模塊通信端執行步驟的順序圖。圖6是示出根據本發明的一個實施例的模塊系統的模塊化更新中,主模塊執行步驟的順序圖。
圖7是示出根據本發明的一個實施例的模塊系統的模塊化更新中,子模塊執行步驟的順序圖。圖8是示出根據本發明的一個實施例的模塊系統中,計算機、主模塊、對象子模塊間的消息流程圖。
參照圖1、圖5及圖8,對模塊通信端的更新執行步驟進行說明。首先,由所述編譯器130模塊化生成的更新數據代碼是二進制機器語言代碼形態。在步驟510中,所述模塊通信端140從所述編譯器130接收對n個模塊各個的更新數據代碼。其次,所述模塊通信端140將成為更新目標的各個模塊地址,添加在包括所述模塊化更新數據代碼的數據幀的通信標。例如,在步驟520中,模塊的mac地址或固有的串口數字的一部分作為模塊地址,添加在通信標。
其次,在步驟530中,所述模塊通信端140可使適用于所述模塊通信端140和所述主模塊210之間的通信協議,編碼所述數據幀。即,適應于無線的wifi或藍牙方式,或有線的usb通信協議,可編碼將傳送的各個數據。在這種情況下,在步驟540中,為了傳送多模塊的更新數據代碼,所述模塊通信端140可將所述更新數據代碼上傳到配置在內部的先進先出存儲器(firstinfirstoutmemory,fifo存儲器)。即,所述模塊通信端140以先進先出方式,將編碼的所述模塊化更新數據代碼存儲在內部存儲器之后,可發送到所述主模塊210。例如,在步驟550中,所述模塊通信端140發送n個模塊的模塊化更新數據代碼時,用于在所述fifo存儲器第一次被上傳的第一模塊的更新數據代碼,第一個發送到所述第一主模塊210。
其次,所述模塊系統200的第一模塊從所述主模塊210,可通過所述網絡總線202接收所述更新數據代碼。在這種情況下,在步驟560中,為了確認完整性,所述模塊通信端140可給所述主模塊210再發送所述更新數據代碼,所述主模塊210也可將第二次接收的所述更新數據代碼再發送到所述第一模塊。其次,在步驟570中,所述第一模塊可相互比較兩次接收的所述更新數據代碼,驗證完整性。如果,完整性驗證570沒有錯誤時,所述第一模塊生成完成消息,發送至所述主模塊210。如果,在驗證完整性的過程中發生錯誤時,所述第一模塊生成錯誤消息,發送至所述主模塊210。由此,所述主模塊210將所述錯誤消息發送到所述模塊通信端140,可請求再發送具有錯誤的相應部分的數據,由此,所述模塊通信端140可再發送具有錯誤的相應部分的數據。所述主模塊210將完成消息發送到所述模塊通信端140,告知對第一模塊的更新沒有錯誤的進行。
其次,在步驟540中,所述模塊通信端140在所述fifo存儲器去除用于第一模塊的更新數據代碼,可上傳相當于下一個模塊的更新數據代碼。此外,在步驟550中,所述模塊通信端140將第二次上傳到所述fifo存儲器的第二模塊的更新數據代碼,發送到所述模塊系統200的主模塊210。相同地,在步驟560中,為了確認完整性,所述模塊通信端140可再發送所述第二模塊的更新數據代碼。其次,在步驟570中,所述模塊系統200的第二模塊,相互比較兩次接收的所述更新數據代碼,可驗證完整性。如果完整性驗證570沒有錯誤時,生成完成消息發送至所述主模塊210。如果,在完整性驗證過程中發生錯誤時,所述第二模塊生成錯誤消息,發送至所述主模塊210。由此,所述主模塊210將所述錯誤消息發送到所述模塊通信端140,可請求再發送具有錯誤的相應部分的數據。由此,所述模塊通信端140可再發送具有錯誤的相應部分的數據。所述主模塊210將完成消息發送到所述模塊通信端140,告知對第二模塊的更新沒有錯誤的進行。
與此相同的方式,所述模塊通信端140在發送第n次模塊的更新數據代碼之后,確認沒有錯誤,使完成對所述模塊系統200各個模塊的更新。
參照圖1、圖6及圖8,對主模塊的更新執行步驟進行說明。
參照圖1、圖6及圖8,首先,在步驟610,所述模塊系統200的主模塊210進行根據自身固件的特定進程,在步驟620,檢查從所述模塊通信端140是否接收數據。所述主模塊210可從所述模塊通信端140接收模塊系統200的模塊化更新數據代碼。如果,在步驟620,所述主模塊210接收數據時,在步驟622,所述主模塊210解碼通信協議,解釋接收數據的內容。在步驟630中,所述接收的數據可以是對模塊系統200模塊的更新指令。如果,在步驟630,所述接收的數據不是更新指令時,在步驟632,所述主模塊210可執行根據相應指令的另外的作業。如果,在步驟630,所述接收的數據是更新指令時,在步驟640,所述主模塊210確認將要更新模塊的個數n。
其次,在步驟642,所述主模塊210通過所述網絡總線202,可發送對第一模塊的更新請求消息。在這種情況下,如果,在步驟650,所述第一模塊正常地接收所述更新請求消息,作為此應答發送準備完成消息,由此,所述主模塊210正常地接收所述準備完成消息時,在步驟660,所述主模塊210第一次發送對第一模塊的更新數據代碼。在這種情況下,在步驟662,為了確認完整性所述主模塊210可將所述更新數據代碼再發送到所述第一模塊。其次,在步驟670,所述主模塊210從所述第一模塊驗證完整性,在步驟642,在驗證完整性的過程中沒有錯誤時,將更新請求消息發送到第二模塊,以于第一模塊形同的過程,對第二模塊進行更新。如果,在驗證所述完整性670的過程具有錯誤時,在步驟672,所述第一模塊可將錯誤消息發送到所述主模塊210,由此,在步驟660,所述主模塊210再發送對所述第一模塊的更新數據代碼。
一方面,在步驟650,所述主模塊210接收不到對第一模塊的更新準備完成消息,在步驟652,經過規定時間,在步驟654,所述主模塊210將更新錯誤消息發送到所述模塊通信端140,在步驟610,可執行自身原來的主進程。
參照圖1、圖7及圖8,對子模塊的更新執行步驟進行說明。
參照圖1、圖7及圖8,首先,在步驟710,模塊系統200的子模塊220、230、240、250、260、270進行根據固件的特定進程,在步驟720,檢查從所述主模塊210是否接收數據。子模塊220、230、240、250、260、270分別可從所述模塊主模塊210,接收更新數據代碼。如果,在步驟720,子模塊220、230、240、250、260、270分別接收數據時,在步驟730,所述子模塊220、230、240、250、260、270分別解碼通信協議,解釋接收數據的內容。作為一個示例,所述模塊系統200的網絡總線202是can總線時,所述子模塊220、230、240、250、260、270分別從所述主模塊210接收的數據,去除關于通信協議的標,可確認接收的數據cmd316是否為請求更新的消息。如果,在步驟740,所述接收的數據布置更新指令時,在步驟742,所述子模塊220、230、240、250、260、270分別可執行根據相應指令的另外的作業。如果,在步驟740,所述接收的數據是更新指令時,在步驟750,所述子模塊220、230、240、250、260、270分別為了更新,停止進行中的進程,將程序程序計算器(programcounter)跳躍至引導裝載程序。
其次,在步驟760,所述子模塊220、230、240、250、260、270分別可給所述主模塊210發送用于更新的準備完成的準備完成消息。其次,在步驟770,所述子模塊220、230、240、250、260、270分別將從所述主模塊210接收的更新數據代碼,傳遞到用戶代碼領域。在這種情況下,在步驟780,所述子模塊220、230、240、250、260、270分別為了確認所述更新數據代碼的完整性,從所述主模塊210再一次接收所述更新數據,在步驟790,可進行在與以前傳遞到用戶代碼領域的數據進行比較的驗證過程。如果,在所述完整性驗證790過程具有錯誤時,在步驟794,所述子模塊220、230、240、250、260、270分別可將錯誤消息發送到所述主模塊210,由此,在步驟770,所述主模塊210再發送對所述子模塊220、230、240、250、260、270各個的數據更新代碼。如果,在所述完整性驗證790過程沒有錯誤時,在步驟792,所述子模塊220、230、240、250、260、270分別重置自身的軟件再運行。
在上述的實施例中,舉例說明了主模塊發送與子模塊的運營有關的更新數據,但所述主模塊也可進行與自身的模塊有關的數據更新。
如上述,根據本發明的一個實施例,根據模塊系統及模塊系統的更新方法,不個別的執行對多模塊各個的更新,可整體性的執行,可使簡便且有效的更新構成模塊系統的個別模塊的數據。
此外,將構成模塊系統的多種模塊,由多種方式結合并連接,可構建多種目的的模塊系統。例如,結合電源模塊和攝像機模塊及主模塊,可構建監視用模塊系統,利用電源模塊、主模塊、馬達模塊及攝像機模塊,也可構建移動式模塊系統。此外,將由相同的模塊構成的模塊系統,用于其他用途時,不必要個別開發且個別更新對構成所述模塊系統的各個模塊的數據,可由整體系統一次性的整體進行更新。
因此,可再使用構成模塊系統的模塊,簡單的交替現有模塊系統的數據,可方便的構建多種其他目的的模塊系統。
基于模塊的機器人系統
圖9是示出根據本發明的一個實施例,基于模塊的機器人系統構成的原理圖,圖10是示出在圖9的個別模塊的斷面圖。
參照圖9及圖10,根據本發明的一個實施例,基于模塊的機器人系統900時在圖1示出的模塊系統的應用程序,基本構成與圖1的實施例相同,所以,以下只對基于模塊的機器人系統900的特定事項進行說明。
根據本發明的一個實施例,在包括可相互通信的多個模塊910、920、930、940、950的基于模塊的機器人系統900中,基于模塊的機器人系統900可更新對各個模塊910、920、930、940、950。
所述基于模塊的機器人系統900,可包括主模塊910,與所述主模塊910可進行數據通信網絡連接的一個以上的子模塊920、930、940、950。在本實施例,主模塊910、電源模塊920、按鈕模塊930、子通信模塊940及馬達模塊950依次可通信的連接,構成模塊系統900。所述各個模塊910、920、930、940、950是規格化的直六面體殼911形象,包括本體殼911b和覆蓋此的蓋殼911a。在所述本體殼911b內搭載用于執行各個模塊910、920、930、940、950特定功能的微控制器990。在各個所述模塊910、920、930、940、950的四個側面,可配置用于結合相鄰模塊的結合器具980、與相鄰的模塊電性連接,用于數據通信的總線銷970,和用于供給電源的電源供給銷970。主模塊910、電源模塊920、按鈕模塊930及子通信模塊940可由所述結合器具980,由相鄰的狀態被結合,在這種情況下,形成在各模塊的總線銷970和電源供給銷970,可分別接觸形成在結合其他模塊的總線銷970和電源供給銷970。因此,相互結合的模塊之間可供給電源,形成網絡可接發數據。一方面,在本實施例中,所述馬達模塊950不是由所述子通信模塊940和結合器具980的結合,而是,也可由另外的連接器940被連接。所述連接器940可包括電源供給線和用于接發數據的數據線。
所述結合器具980的配置用于連接相鄰兩個模塊。在本實施例,作為所述結合器具980可配置在本體殼911b側面的結合銷982和由磁力拉住所述結合銷982的磁鐵981。由所述結合銷982和所述磁鐵981,配置在相鄰位置的兩個模塊,可由相互磁力被拉住結合。在本實施例,作為所述結合器具980舉例說明了結合銷982和磁鐵981,但不限定于此,也可使用其他方式的結合器具。例如,在所述本體殼911b配置凸出單元和收容所述凸出單元的灣入單元,使兩個相鄰模塊的所述凸出單元和所述灣入單元相結合的方式,也可結合兩個模塊。
所述主模塊910可與外部設備100,筆記本電腦、臺式電腦或如工作站的計算機,或移動電話、個人數字助理pda、智慧型、如電子書的移動設備可通信的被連接。在本實施例,所述主模塊910可與所述計算機或與所述移動設備可進行wifi通信的連接,與用戶的計算機或與移動外部設備100接發相互數據,或可接收對所述子模塊920、930、940、950的更新數據。當然,所述主模塊910可與所述計算機或所述移動設備,由usb、irda、wifi、uwb、藍牙、zigbee、cdma、wcdma、lte、lte-a中任何一個方式,可通信的連接150。
所述子模塊920、930、940、950可與所述主模塊910接發數據,可由網絡總線970連接,在本實施例,所述網絡總線970可以是只接收通過網絡總線970發送的數據的目的地地址一致的模塊數據的廣播方式。
所述網絡總線970可由串口、lan、can、usb、irda、wifi、藍牙、zigbee、cdma、wcdma、lte、lte-a等,多種有無線通信方式被構成,也可進行兩種通信。
在本實施例,所述網絡總線970可以是控制器局域網(can;controllerareanetwork)總線。利用can通信時,便于模塊間即插即用的體現,便于廣播網絡的體現,可具有高信賴度,提高系統控制速度和穩定性。
所述主模塊910通過所述網絡總線970,在所述子模塊920、930、940、950中,可將對更新必要的數據發送到子模塊的微處理器990的更新必要的對象子模塊。
如上述,根據本發明的一個實施例的基于模塊的機器人系統,對多個由網絡連接的模塊各自的更新,不個別的執行可整體的執行,可方便且有效率的更新構成基于模塊的機器人系統的個別模塊。
此外,將構成模塊系統的多種模塊,由多種方式結合并連接,可構成多種目的的機器人系統。例如,結合電源模塊和攝像機模塊主模塊,可構建監視用機器人系統,利用電源模塊、主模塊和馬達模塊及攝像機模塊,也可構建移動式機器人系統。此外,由相同的模塊構成的基于模塊的機器人系統,用于其他用途時,不必要個別開發且個別更新對構成機器人系統的各個模塊的數據,可執行對整體系統一次性的整體進行更新。
多模塊編譯系統
圖11是示出根據本發明的一個實施例的多模塊編譯系統的大概構成的框圖。
參照圖11,根據本發明的一個實施例的多模塊編譯系統1120為了生成包括在含有多個模塊的模塊系統1140的各個模塊1141、1142、1143、1144、1145、1146、1147化執行代碼被配置。在本實施例中,所述多個模塊1141、1142、1143、1144、1145、1146、1147可由網絡相互連接。
所述多模塊編譯系統1120可搭載在筆記本電腦、臺式電腦,或如工作站的計算機,或如移動電話、pda、智慧型、電子書的移動設備內。
在相互可通信的包括多個模塊1141、1142、1143、1144、1145、1146、1147的模塊系統1140中,所述模塊系統1140可更新各個模塊1141、1142、1143、1144、1145、1146、1147。所述模塊系統1140與在圖1示出的模塊系統200具有相同的構成。
所述模塊系統1140可包括主模塊1141,和可使與所述主模塊1141數據通信,由網絡連接的一個以上的子模塊1142、1143、1144、1145、1146、1147。
所述主模塊1141可與筆記本電腦、臺式電腦或如工作站的計算機,或移動電話、pda、智慧型、如電子書的移動設備可通信的被連接。更具體地,所述主模塊1141可與所述計算機或所述移動設備的模塊通信端1130可通信的被連接。由此,所述主模塊1141與用戶的計算機或移動設備的外部設備相互接發數據,或可接收對所述子模塊1142、1143、1144、1145、1146、1147的更新數據。所述主模塊1141可與所述計算機或所述移動設備,由usb、irda、wifi、uwb、藍牙、zigbee、cdma、wcdma、lte、lte-a中任何一個方式通信1132。即,所述主模塊1141也可由usb,有線連接在模塊通信端1130,也可通過wifi直接由無線連接,也可通過接入點(ap)由無線連接。
所述子模塊1142、1143、1144、1145、1146、1147可與所述主模塊1141進行數據通信的由網絡連接,且作為各更新的中央處理裝置(cpu)可內裝微控制器(mcu;microcontrollerunit)。所述微處理器作為內部存儲器,可包括如閃存、存儲固件的用戶代碼領域,和用于啟動微處理器的引導模式(bootloader)領域。在本實施例,所述子模塊1142、1143、1144、1145、1146、1147各個可以是子通信模塊1142、電源模塊1143、馬達模塊1144、按鈕模塊1145、傳感器模塊1146、顯示模塊1147、射線機模塊中任何一個。
所述子模塊1142、1143、1144、1145、1146、1147可使與所述主模塊1141相互接發數據,可由網絡總線1148連接。在本實施例,所述網絡總線1148可以是通過所述網絡總線1148發送的,只與數據的目的地地址一致的模塊接收數據的廣播方式。所述網絡總線1148可由串口、lan、can、usb、irda、wifi、藍牙、zigbee、cdma、wcdma、lte、lte-a等,多種有無線通信方式被構成,也可進行兩種通信。
在本實施例,所述網絡總線1148可以是控制器局域網(can;controllerareanetwork)總線。利用can通信時,便于模塊間即插即用的體現,便于廣播網絡的體現,可具有高信賴度,提高系統控制速度和穩定性。
所述主模塊1141通過所述網絡總線1148,在所述子模塊1142、1143、1144、1145、1146、1147中,給需要所述子模塊的微處理器更新的對象子模塊,可發送更新所需的更新數據。
所述電源模塊1143為了供給所述模塊系統1140整個電源被配置,由電性連接在所述主模塊1141和其他子模塊1142、1144、1145、1146、1147,可供給各模塊運行必要的電源。各個模塊1141、1142、1143、1144、1145、1146、1147具備塊形象的機殼,使相鄰的模塊之間相互直接由物理性連接,也可利用另外的連接器連接。此外,所述電源模塊1143可與所述主模塊1141另外的配置,也可一體的形成在一個機殼內配置。
所述多模塊編譯系統1120可包括模塊識別單元1122、事件分析單元1123、模塊代碼生成單元1124、編譯器單元1126。所述模塊識別單元1122可識別用于驅動模塊系統1140的,執行整個程序代碼的對象模塊。所述程序代碼可由至少一部分為如c++、c#、java的面向對象的計算機言語(objectorientedprogramlanguage)被編制。例如,所述整個程序代碼是與模塊系統1140的按鈕模塊1145和馬達模塊1144驅動有關的程序代碼時,所述模塊識別單元1122分析所述整個程序代碼,可掌握所述按鈕模塊1145和所述馬達模塊1144為程序的對象模塊。
所述事件分析單元1123分析所述模塊系統1140的整個程序代碼,可分析發生在所述對象模塊1145、1144的多種事件。
所述事件可包括傳送到模塊間的構成模塊系統1140的通信數據包、一個模塊傳送給其他模塊的操作指令或消息及一般數據的接發。此外,所述事件與其他模塊無關,在自身模塊的操作中,可包括由特定條件變更等的操作變更。示例性的,所述整個程序是對根據所述按鈕模塊1145的開閉的所述馬達模塊1144的操作時,所述事件分析單元1123可掌握在所述整個程序代碼內,所述按鈕模塊1145和所述馬達模塊1144間存在事件。
所述模塊代碼生成單元1124分析在所述模塊識別單元1122掌握的所述對象模塊和在所述事件分析單元1123掌握的所述對象模塊間事件的關聯性,可將所述整個程序代碼分割成所述對象模塊化模塊代碼并生成。例如,所述模塊系統1140由主模塊1141、馬達模塊1144、電源模塊1143及顯示模塊1147的四個模塊構成時,用戶可開發這四個模塊相互關聯運行的模塊系統的整個程序代碼。并且,所述模塊代碼生成單元1124分析用戶開發的整個程序代碼,分割成各個模塊,即對主模塊1141執行動作的第一模塊代碼、對馬達模塊1144執行動作的第二模塊代碼、對電源模塊1143執行動作的第三模塊代碼,及對顯示模塊1147動作的第四模塊代碼,可生成模塊代碼。在本實施例,舉例說明了所述事件分析單元1123和所述模塊代碼生成單元1124另外被配置,但是,所述模塊代碼生成單元1124也可包括所述事件分析單元1123。在這種情況下,所述模塊代碼生成單元1124基于發生在所述對象模塊1145、1144的事件和與所述對象模塊1145、1144的關聯性,可將所述整個程序代碼分割成所述對象模塊化模塊代碼并生成。
所述編譯器單元1126將從所述模塊代碼生成單元1124生成的所述對象模塊化模塊代碼進行編譯,可生成所述對象模塊化執行代碼1127。所述編譯器單元1126編譯如c++、c#、java的高級語言,可生成適合于所述對象模塊的微控制器的二進制代碼的機器語言代碼1127。生成的所述機器語言代碼1127作為通信單元,通過模塊通信單元1130,可發送到所述模塊系統1140的主模塊1141。
一方面,所述多模塊編譯系統1120可包括從所述模塊代碼生成單元1124生成的,存儲對象模塊化模塊代碼或所述程序代碼的代碼數據庫單元1125。由此,用戶編程開發現已被生成的模塊化模塊代碼時,可再活用或參照。
一方面,所述多模塊編譯系統1120可提供用戶編制所述程序代碼時,可利用的應用程序編碼界面(api;applicationprogramminginterface)。
一方面,所述多模塊編譯系統1120可包括生成所述模塊系統1140的整個程序代碼,可使用戶編輯的提供用戶界面的用戶界面單元1200。所述用戶界面單元1200可包括通過連接在計算機鍵盤或鼠標,收到用戶的輸入,顯示相應內容的顯示器。所述用戶界面單元1200可相互轉換文字用戶界面(cui;characteruserinterface)和圖形用戶界面(gui;graphicuserinterface)。因此,用戶可直接通過鍵盤編制程序代碼,選擇圖形圖像可編址已生成的標準代碼,也可將程序對象模塊的個體圖像連接到顯示器上或修改或編輯,生成新的程序代碼。
此外,所述模塊系統1140和所述模塊通信端1130可通信的被連接時,所述多模塊編譯系統1120還可包括自動識別構成所述模塊系統1140的模塊種類和個數的模塊識別單元(未示出)。
圖12a及圖12b是示出根據本發明的一個實施例的多模塊編譯系統的圖形用戶界面單元。
參照圖11及圖12a及圖12b,根據本發明的一個實施例的圖形用戶界面單元1200,利用計算機圖形可將構成模塊系統的模塊1250、1260、1270顯示在顯示裝置。此外,鼠標或鍵盤,或收到用戶手指觸摸的輸入,連接或在組合模塊,可使生成模塊系統1140的整個程序代碼。
所述圖形用戶界面單元1200選擇并編輯構成模塊系統的模塊,可包括能將設置各模塊功能的主窗口1202和構成模塊系統的多種類模塊,顯示為圖標形態的模塊選擇窗口1210,和顯示生成、存儲及編輯程序代碼文件的多種選單的選單窗口1204。此外,在所述主窗口1202內可顯示選擇或刪除,或還原之前編輯內容的編輯圖標1206。例如,用戶附加新模塊進行編程時,用戶可在模塊選擇窗口1210選擇新模塊,在這種情況下,程序代碼上可被宣告對相應模塊的類別變數。此外,選擇在主窗口1202內的模塊時,各個模塊可顯示可執行的行動列表。在這種情況下,被顯示的模塊化行動列表以提供標準列表為基礎,用戶附加模塊化動作項目更新列表,或沒有提供在列表,也可轉換為cui環境,用戶直接編程。
在本實施例,在真實世界1201相互連接按鈕模塊1260和馬達模塊1270,使在主窗口1202內作為對所述按鈕模塊1260行動列表,對點擊按鈕的行動也可由列表顯示。用戶選擇點擊所述按鈕時,在所述程序代碼的所述按鈕類別內,可生成用于設置對點擊所述按鈕模塊1260按鈕時,發生事件內容的按鈕點擊事件處理程序。并且,在所述按鈕點擊事件處理程序內,執行點擊所述按鈕時,對模塊系統動作的內容可被編程。例如,用戶點擊所述按鈕模塊1260的按鈕時,將所述馬達模塊1270的馬達從0度旋轉到180度進行編程時,用戶可在所述按鈕類別內生成的按鈕點擊事件處理程序部分,編制給馬達模塊1270傳送目標旋轉角度值的程序。一方面,在所述馬達模塊1270的立場上,在有關所述馬達模塊1270的類別內馬達事件處理程序內,發生所述馬達模塊1270從所述按鈕模塊1260接收對目標旋轉角度信息的事件時,可編制將所述馬達模塊1270旋轉180度的編程。
一方面,所述模塊系統1140通過所述模塊通信端1130,連接在所述用戶界面單元1200時,所述模塊識別單元(未示出)可自動掌握構成所述模塊系統1140的模塊種類和個數。在這種情況下,如圖12a,在真實世界1201構成模塊系統的模塊由主模塊1250、按鈕模塊1260及馬達模塊1270構成,且這些模塊1250、1260、1270還沒有連接網絡時,所述模塊識別單元可能識別與模塊通信端1130可通信連接的主模塊1250。因此,在所述主窗口1202只可顯示所述主模塊1250。一方面,如圖12b,在真實世界1201構成模塊系統的模塊系統由主模塊1250、按鈕模塊1260及馬達模塊1270構成,這些模塊1250、1260、1270由網絡連接器1252、1262連接時,所述模塊識別單元可識別與模塊通信端1130可通信連接的主模塊1250,附加地,也可一同識別與所述主模塊1250網絡連接的所述按鈕模塊1260及所述馬達模塊1270。此外,也可識別構成所述模塊系統的所述模塊1250、1260、1270的連接結構。因此,在所述主窗口1202上,可全部顯示所述主模塊1250、所述按鈕模塊1260及所述馬達模塊1270,也可顯示示出這些模塊1250、1260、1270連接結構的虛擬網絡連接線1252a、1262a。一方面,在程序代碼上對識別的所述模塊1250、1260、1270的類別變數,如即插即用方式自動的被宣告。
一方面,所述模塊系統1140可通信的連接在所述模塊通信端1130時,所述模塊識別單元在構成所述模塊系統的模塊1250、1260、1270,接收分別存儲的執行代碼,可發送到所述用戶界面單元1200。由此,用戶可檢討并修正存儲在當前模塊系統各個模塊1250、1260、1270的執行代碼。
多模塊編譯方法
以下,根據本發明的一個實施例,對多模塊編譯方法進行說明。
圖13是示出根據本發明的一個實施例的多模塊編譯方法的執行步驟的順序圖,圖14是在圖13中的代碼生成器(模塊代碼生成單元)的執行步驟的順序圖。
參照圖11及圖13,根據本發明的一個實施例,對多模塊編譯方法的執行步驟進行說明。首先,在步驟1310中,用戶在如計算機或移動設備的外部設備,生成用于驅動模塊系統整體的程序代碼。所述模塊系統1140包括由網絡連接的多個模塊。在這種情況下,用戶叫回現已編制預存在代碼數據庫單元1125的程序代碼再使用,或編輯此可編制新的程序代碼。其次,在步驟1330中,代碼發生器1320分析對整個模塊系統1140的程序代碼,并再進行組合,生成構成所述模塊系統1140的各模塊化程序代碼。其次,在步驟1340中,將生成的模塊化程序代碼傳送到所述模塊系統1140,所述模塊系統1140將新的模塊化程序代碼更新在各個模塊。
參照圖11及圖14,對在圖13示出的代碼發生器的執行步驟進行詳細地說明。首先,在步驟1410中,代碼發生器(模塊代碼生成單元1320)分析由用戶編制的所述模塊系統1140整個的程序代碼,識別執行所述程序代碼的對象模塊。其次,在步驟1420中,所述代碼發生器分析所述模塊系統整個程序代碼,分析發生在所述對象模塊的事件種類和個數。在這種情況下,在步驟1430中,所述代碼發生器可基于接發在所述對象模塊的種類和所述對象模塊間的消息,分析事件。
其次,在步驟1440中,所述代碼發生器分析與各個所述對象模塊和所述事件的關聯性,分割所述程序代碼并再組合,生成所述對象模塊化代碼。之后,在步驟1450中,所述代碼發生器編譯所述對象模塊化代碼,生成可在所述對象模塊運行的,二進制形式的機器語言代碼的模塊化執行代碼。
一方面,根據本發明的一個實施例,所述模塊系統和所述計算機或所述移動設備可通信的連接時,多模塊編譯方法還可包括自動識別構成所述模塊系統的模塊種類和個數的模塊識別步驟,且還可包括將在所述模塊識別步驟識別的模塊種類和個數,顯示在所述計算機或所述移動設備的模塊顯示步驟。
圖15是在圖14中代碼生成器(模塊代碼生成單元)的事件分析步驟的順序圖。
參照圖11及圖15,對在圖14示出的代碼發生器的事件分析步驟進行詳細地說明。在本實施例為了理解的方便,舉例說明作為總模塊的個數為三個,由第一模塊的主模塊、第二模塊的馬達模塊、第三模塊的按鈕模塊構成的模塊系統。用戶點擊所述按鈕模塊的按鈕時,作為第一事件在gui或cui環境內,可編程所述馬達模塊的馬達旋轉180度的程序。在這種情況下,在步驟1510中,所述代碼發生器分析所述模塊系統的整個程序代碼,數在整個程序代碼內使用的模塊個數n和種類,在步驟1520中,數事件個數k。為了說明的方便,在本實施例,舉例說明作為在模塊發生的事件,存在一個第一事件。
其次,在步驟1530中,所述代碼發生器依次地從第一模塊到第n模塊,此外各個模塊從第一事件到第k事件,確認第n模塊和第k事件的關聯性。在本實施例,首先檢查所述第一事件和所述第一模塊的主模塊的關聯性。確認所述第一事件和所述主模塊沒有關聯性,檢查所述第二模塊的按鈕模塊和所述第一事件的關聯性。如果,所述代碼發生器確認所述第二模塊的按鈕模塊和所述第一事件具有關聯性,在步驟1540,所述代碼發生器在所述整個程序代碼內,分析所述第一事件和所述按鈕模塊的關聯代碼塊,在相應于所述按鈕模塊的程序模塊部分,生成有關的程序代碼。
其次,在步驟1542中,所述代碼發生器過到下一個事件,在步驟1530,檢查所述第二模塊的所述按鈕模塊和下一個事件是否有關聯。如果,在步驟1550,確認沒有附加的關聯事件,在步驟1552,所述代碼發生器過到下一個模塊,即第三模塊,在步驟1530,檢查第三模塊的所述馬達模塊與所述第一事件是否具有關聯性。所述代碼發生器確認所述馬達模塊和所述第一事件具有關聯性之后,在步驟1540,在所述整個程序代碼內分析所述第一事件和所述馬達模塊的關聯代碼塊,在相應于所述馬達模塊的程序模塊部分,生成有關程序代碼。
與上述相同的方式,在步驟1570中,所述代碼發生器對具有k個事件模塊的整個程序代碼,分析與各個事件和各個模塊的關聯性,最終可生成n個模塊化程序代碼。在本實施例,所述第一模塊的主模塊與所述第一事件乜有關聯性,所以,與已經存儲在第一模塊的固件程序進行比較時,沒有變更的部分。因此,在模塊化更新過程中,所述第一模塊不需要更新固件程序。相反地,所述第二模塊和所述第三模塊與所述第一事件具有關聯性,所以,與已經存儲在模塊的固件程序進行比較時,存在變更的部分。因此,在模塊化更新過程中,所述第二模塊和所述第三模塊可更新固件程序。
多模塊程序示例
圖16a是示出根據本發明的一個實施例,在多模塊編譯系統被編碼的程序代碼的對模塊類的代碼列表,且圖16b是示出其他模塊被附加識別的,對模塊的類別的代碼列表,并且圖16c是示出在識別的模塊間接發的,對事件處理的代碼列表。圖17a及圖17b是示出根據本發明的一個實施例,通過多模塊編譯系統生成的模塊化代碼列表。
首先,參照圖12a及圖16a,主模塊1250與按鈕模塊1260和馬達模塊1270不是相互連接的狀態,所以,在集成開發環境系統(ide)對模塊系統的程序代碼1600上,只可顯示與所述集成開發環境系統進行通信的,對主模塊1250的類別1602。
如圖12b,如果,主模塊1250、按鈕模塊1260及馬達模塊1270連接時,如圖16b,在集成開發環境系統(ide)對模塊系統的程序代碼1620上,附加與所述集成開發環境系統通信的主模塊1250,生成對所述按鈕模塊1260的類別和對所述馬達模塊1270的類別,在所述主模塊1250的類別1602內可生成對所述按鈕模塊1260動作的程序代碼1622、對所述馬達模塊1270的程序代碼1624,及點擊所述按鈕模塊1260按鈕時發生的,對事件的程序代碼1626。即,可生成對可通信的連接在所述主模塊1250的子模塊1260、1270,定義可能動作的程序代碼。示例性的,如在圖16c示出,點擊所述按鈕模塊1260的按鈕時,在程序代碼1640上可生成所述馬達模塊1270的馬達從0度旋轉至180度內容的程序代碼1642。
在本實施例,相互連接所述按鈕模塊1650和所述馬達模塊1270,在所述主窗口1202內作為對所述按鈕模塊1260的行動列表,可將對點擊按鈕的行動顯示為列表。用戶選擇所述按鈕點擊時,在所述按鈕類別內可生成點擊所述按鈕模塊1260按鈕時,將發生的用于設置對事件內容的按鈕點擊事件處理程序。并且,在所述按鈕點擊事件處理程序內,可編程點擊所述按鈕時將執行的模塊系統運行的內容。例如,用戶點擊所述按鈕模塊1260的按鈕時,所述馬達模塊1270的馬達從0度旋轉至180度編程時,用戶在所述按鈕類別內生成的按鈕點擊事件處理程序部分,可編制將目標旋轉角度值傳送給所述馬達模塊1270的內容程序。一方面,在所述馬達模塊1270的立場上,有關所述馬達模塊1270的類別內馬達事件處理程序中,發生所述馬達模塊1270從所述按鈕模塊1260接收對目標旋轉角度信息的事件時,可編制將馬達旋轉180度的編程。
其次,完成對所述模塊系統整個的程序代碼時,所述代碼發生器分析所述模塊系統整個程序代碼,分析所述模塊和對所述對象模塊事件的關聯性,分割所述整個程序代碼,進行再組合,可生成如圖17a示出的對所述模塊1260的程序代碼1720,和如圖17b示出的所述馬達模塊1270的程序代碼1760。
參照圖17a,對所述按鈕模塊1260的程序代碼1720,可包括基本生成的模塊化模板代碼1722,和由所屬代碼發生器附加生成的附加代碼1724。所述附加代碼1724可包括發生第一事件時,對傳達消息的丁一部分1726,和發生所述第一事件時,傳達的消息部分1728。參照圖17b,對所述馬達模塊1270的程序代碼1760,可包括基本生成的模塊化模板代碼1762,和由所述代碼發生器附加生成的附加代碼1764。所述附加代碼1764可包括對馬達初期位置的部分1765、自身的id接收設置部分1766、接收與所述第一事件有關消息的條件部分1768,和這時執行所述馬達模塊的動作部分1769。
根據本發明的一個實施例的多模塊編譯系統及多模塊編譯方法,可從模塊系統整個程序代碼,快速有效地生成各模塊執行代碼。由此,由多數模塊構成的模塊系統中,從整個程序代碼生成模塊化代碼并編譯,可簡便有效的更新各模塊的固件。
因此,將由相同模塊構成的模塊系統用于其他用途時,不必個別的重新開發對構成所述模塊系統的各個模塊的固件,修改對整個模塊系統的程序,通過多模塊編譯生成模塊化執行代碼,可整體性的一次執行更新。
此外,將構成模塊系統的模塊,可再使用為多種用途。
本發明上述的說明是為了示例,本發明領域的技術人員可以理解為,不變更本發明的技術思想或必要特征,可容易變更成其他具體形態。所以,要理解為,以上記載的實施例在所有方面是示例性的,且不是限定性的。
本發明的范圍比起所述詳細的說明,由后述的權利要求范圍顯示,理解為權利要求范圍的意義及范圍,且從其均等概念導出的所有變更或變更的形態包括在本發明的范圍。
符號說明
100:外部設備100,1200:用戶界面單元
120:模塊代碼生成器130:編譯器
140,1130:模塊通信端200,400,900,1140:模塊系統
202:網絡總線210,910,1141:主模塊
230,440,920,1143:電源模塊(電池模塊)
240,950,1144:馬達模塊250,930,1145:按鈕模塊
260,1146:傳感器模塊270,1147:顯示模塊
300:數據幀310:介入領域
320:控制領域330:數據領域
420:第二模塊系統422:網絡總線
430,940:子通信模塊450:攝像機模塊
970:總線及電源銷980:結合器具
981:磁鐵982:結合銷
990:微控制器(mcu)1120:多模塊編譯系統
1122:模塊識別單元1123:事件分析單元
1124:模塊代碼生成單元1125:代碼數據庫單元
1126:編譯器單元1142:子通信模塊
1148:網絡總線1202:主窗口
1204:選單窗口1210:模塊選擇窗口