本發(fā)明涉及嵌入式開發(fā)技術領域,尤其涉及一種基于網(wǎng)絡的多單片機一次刷機系統(tǒng)及實現(xiàn)方法。
背景技術:
傳統(tǒng)的單片機刷機時需要人工接線刷機,當需要刷寫固件的單片機達到一定數(shù)量時,通過人工接線刷寫固件的方式效率低下,且費時費力;當單片機置于包裝外殼內(nèi)時,刷寫固件往往還需要拆開外殼,十分不便利;當固件內(nèi)容過大單片機不能一次性存儲時,需要逐條刷寫。
技術實現(xiàn)要素:
本發(fā)明目的在于解決傳統(tǒng)的單片機刷機時需要人工接線刷機,當需要刷寫固件的單片機達到一定數(shù)量時,通過人工接線刷寫固件的方式效率低下,且費時費力;當單片機置于包裝外殼內(nèi)時,刷寫固件往往還需要拆開外殼,十分不便利;當固件內(nèi)容過大單片機不能一次性存儲時,需要逐條刷寫的問題的不足而提供的一種新型基于網(wǎng)絡的多單片機一次刷機系統(tǒng)及實現(xiàn)方法。
本發(fā)明是通過以下技術方案來實現(xiàn)的:一種基于網(wǎng)絡的多單片機一次刷機系統(tǒng)及實現(xiàn)方法,包括如下步驟:
(1)準備構建基于網(wǎng)絡的多單片機一次刷機系統(tǒng)的硬件系統(tǒng);硬件系統(tǒng)由需要刷固件的所有單片機和一個PC端構成;
(2)所有單片機和PC端同時連接網(wǎng)絡;
(3)PC端通過不同的IP地址對單片機進行識別;
(4)通過自定義的通信協(xié)議,PC端發(fā)送固件內(nèi)容到所有單片機并逐條刷寫固件到所有單片機;
(5)通過自定義的通信協(xié)議驗證固件內(nèi)容;
(6)完成發(fā)送固件內(nèi)容。
進一步地,所述步驟(1)中硬件系統(tǒng)由需要刷固件的所有單片機和一個PC端構成,所有單片機包含外接串口轉(zhuǎn)WIFI模塊或者樹莓派支持WIFI的系統(tǒng)模塊,PC端必須支持發(fā)送固件和界面顯示。
進一步地,所述步驟(2)所有單片機和PC端同時連接網(wǎng)絡;由路由器發(fā)射WIFI信號,并且所有單片機和PC端同時連接上這個WIFI信號。
進一步地,所述步驟(3)PC端通過不同的IP地址對單片機進行識別;在連接網(wǎng)絡信號的前提下,用PC端逐一連接單片機,并對單片機的IP地址進行修改,如修改為192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4···,192.168.1.n。
進一步地,所述步驟(4)通過自定義的通信協(xié)議,PC端發(fā)送固件內(nèi)容到所有單片機并逐條刷寫固件到所有單片機;自定義的通信協(xié)議為:0xbe+1byte id+1byte sequence+2bytes length+N bytes data,每次發(fā)送下一條消息時,序列號加一,重傳時,序列號不變。
進一步地,所述步驟(5)通過自定義的通信協(xié)議驗證固件內(nèi)容;PC端每次發(fā)送一條消息之后,需要收到單片機發(fā)出的相同的序列號的應答才進行下一條序列號消息的發(fā)送,否則1s后自動重新發(fā)送該條消息,序列號不變,重傳5次之后仍未收到應答則判定為超時;若多次收到相同序列號的消息,則只有第一次收到的消息有效,在原來基礎上,當主機發(fā)送Send_Over后,下位機需要給上位機應答一個相同序列號的02號消息;之后下位機在發(fā)送下一個序列號給上位機來發(fā)送驗證消息;
經(jīng)驗證,如果發(fā)送信息與應答信息不能相互匹配,則該條消息失效,返回到步驟(4),繼續(xù)發(fā)送固件內(nèi)容;
經(jīng)驗證,如果發(fā)送信息與應答信息能夠相互匹配,則該條消息正確發(fā)送,轉(zhuǎn)到步驟(6),成功發(fā)送固件內(nèi)容。
進一步地,所述步驟(6)完成發(fā)送固件內(nèi)容,PC端界面顯示刷機成功。
本發(fā)明的有益效果在于:
(1)效率更高,傳統(tǒng)刷寫方法中,接線之后才能刷機,且每次只能刷寫一個單片機的固件,引入網(wǎng)絡刷機方法之后,可以同時支持多片單片機的固件更新,極大提高了更新固件的效率,大大減少工作量;
(2)刷寫固件更方便,當需要刷寫固件的單片機達到一定數(shù)量時,通過人工接線刷寫固件的方式非常不方便,且費時費力,當單片機置于包裝外殼內(nèi)時,刷寫固件往往還需要拆開外殼,十分不便利,通過網(wǎng)絡的方式刷寫固件更加方便;
(3)刷寫功能更加多樣化,引入自定義的通信協(xié)議之后,使得單片機更新固件時不必一次性存儲全部固件,很好地解決了固件內(nèi)容過大的問題,使刷寫固件功能多樣化。
【附圖說明】
圖1為本發(fā)明基于網(wǎng)絡的多單片機一次刷機系統(tǒng)結(jié)構圖;
圖2為本發(fā)明基于網(wǎng)絡的多單片機一次刷機系統(tǒng)刷多機示意圖;
圖3為本發(fā)明基于網(wǎng)絡的多單片機一次刷機系統(tǒng)刷機流程圖;
圖4為本發(fā)明自定義通信協(xié)議的時序圖。
【具體實施方式】
下面結(jié)合附圖及具體實施方式對本發(fā)明做進一步描述:
如圖1、圖2、圖3、圖4所示,一種基于網(wǎng)絡的多單片機一次刷機系統(tǒng)及實現(xiàn)方法,包括如下步驟:
(1)準備構建基于網(wǎng)絡的多單片機一次刷機系統(tǒng)的硬件系統(tǒng);硬件系統(tǒng)由需要刷固件的所有單片機和一個PC端構成;
(2)所有單片機和PC端同時連接網(wǎng)絡;
(3)PC端通過不同的IP地址對單片機進行識別;
(4)通過自定義的通信協(xié)議,PC端發(fā)送固件內(nèi)容到所有單片機并逐條刷寫固件到所有單片機;
(5)通過自定義的通信協(xié)議驗證固件內(nèi)容;
(6)完成發(fā)送固件內(nèi)容。
進一步地,所述步驟(1)中硬件系統(tǒng)由需要刷固件的所有單片機和一個PC端構成,所有單片機包含外接串口轉(zhuǎn)WIFI模塊或者樹莓派支持WIFI的系統(tǒng)模塊,PC端必須支持發(fā)送固件和界面顯示。
進一步地,所述步驟(2)所有單片機和PC端同時連接網(wǎng)絡;由路由器發(fā)射WIFI信號,并且所有單片機和PC端同時連接上這個WIFI信號。
進一步地,所述步驟(3)PC端通過不同的IP地址對單片機進行識別;在連接網(wǎng)絡信號的前提下,用PC端逐一連接單片機,并對單片機的IP地址進行修改,如修改為192.168.1.1,192.168.1.2,192.168.1.3,192.168.1.4···,192.168.1.n。
進一步地,所述步驟(4)通過自定義的通信協(xié)議,PC端發(fā)送固件內(nèi)容到所有單片機并逐條刷寫固件到所有單片機;自定義的通信協(xié)議為:0xbe+1byte id+1byte sequence+2bytes length+N bytes data,每次發(fā)送下一條消息時,序列號加一,重傳時,序列號不變。
進一步地,所述步驟(5)通過自定義的通信協(xié)議驗證固件內(nèi)容;PC端每次發(fā)送一條消息之后,需要收到單片機發(fā)出的相同的序列號的應答才進行下一條序列號消息的發(fā)送,否則1s后自動重新發(fā)送該條消息,序列號不變,重傳5次之后仍未收到應答則判定為超時;若多次收到相同序列號的消息,則只有第一次收到的消息有效,在原來基礎上,當主機發(fā)送Send_Over后,下位機需要給上位機應答一個相同序列號的02號消息;之后下位機在發(fā)送下一個序列號給上位機來發(fā)送驗證消息;
經(jīng)驗證,如果發(fā)送信息與應答信息不能相互匹配,則該條消息失效,返回到步驟(4),繼續(xù)發(fā)送固件內(nèi)容;
經(jīng)驗證,如果發(fā)送信息與應答信息能夠相互匹配,則該條消息正確發(fā)送,轉(zhuǎn)到步驟(6),成功發(fā)送固件內(nèi)容。
進一步地,所述步驟(6)完成發(fā)送固件內(nèi)容,PC端界面顯示刷機成功。
根據(jù)上述說明書的揭示和教導,本發(fā)明所屬領域的技術人員還可以對上述實施方式進行適當?shù)淖兏托薷摹R虼?,本發(fā)明并不局限于上面揭示和描述的具體實施方式,對本發(fā)明的一些修改和變更也應當落入本發(fā)明的權利要求的保護范圍內(nèi)。此外,盡管本說明書中使用了一些特定的術語,但這些術語只是為了方便說明,并不對本發(fā)明構成任何限制。