แนวทางการออกแบบ OTA ( over the air )

Started by ch25, August 23, 2014, 05:48:13 PM

Previous topic - Next topic

ch25

กำบัวหาแนวทางการออกแบบวงจรไมโครคอนโทรลเลอร์ ให้สามารถดาวน์โหลดโปรแกรมแบบ OTA ได้เหมือนพวกเครื่องรับจานดาวเทียม
พอจะมีหลักการหรือตัวอย่างบ้างไหมครับ ถ้าใช้ PIC จะดีมากเลย


ozuke

"กำบัว" :o :o :o :o

ศึกษาเรื่อง Boot loader ครับใน PIC ก็มีเหมือนกัน

หลักการก็คือเมื่อเวลาระบบมีการแจ้งเตือน Software ใหม่จาก Server หรือตัวแม่
ตัว Client จะทำการเปลี่ยนแปลง Chanel สื่อสารออกไปอีก Chanel หนึ่งซึ่งเอาไว้สำหรับทำ OTA ครับ
จากนั้นมันจะค้นหา Start Package จากข้อมูลที่มันรับมาซึ่ง Server จะส่งมาตลอดเวลา

สมมุติว่า Server ส่ง A-Z แล้วก็ส่ง A-Z อีกไปเรื่อยๆ
เครื่องเราจะต้องรอข้อมูลตัว A ก่อนซึ่งเป็น Start Package จากนั้นจะดึงเอาข้อมูลนั้นมาเก็บไว้หน่วยความจำภายนอกก่อนเช่น EEPROM
หรือหากระบบ Bootlader นั้นมีความจุพอที่จะเขียนโปรแกรมที่จะติดต่อกับ Server ได้ก็ไม่จำเป็นต้องมีครับ

กลับมาเข้าทางกันต่อ เมื่อเก็บข้อมูลไว้หน่วยความจำภายนอกแล้ว ก็ระรีบูท MCU แล้วเข้าโหมด Bootloader ครับ
เพื่อเอาโปรแกรมที่เก็บไว้หน่วยความจำภายนอกมาเขียนลงในตัวมันเอง

จากนั้น Reboot ตัวเองอีกทีเพื่อกลับไปทำงานตามโปรแกรมใหม่ที่โหลดมาครับ

ผลเคยใช้วิธีนี้อยู่ครับ แต่ใช้กับ MCU ตะกูล AVR ครับ
มีทั้ง OTA และแบบที่ใช้โมดูล EEPROM ตัวเล็กๆไปเสียบเพื่ออัพโหลดโปรแกรมเข้า MCU ใหม่โดยไม่ต้องใช้ PC ครับ

น่าจะพอเป็นแนวทางได้เนาะ
นานๆทีผมจะได้เข้ามาตอบเห่อะๆ ขออภัยด้วยหากไม่เข้าใจ


wizardry


ronmob

อ่อเราก้อเคยได้ยินอยู่แต่เราว่ามันไม่เกี่ยวอ่ะ มันเกี่ยวกะสันยาน

sunmoon

ขอบคุณสำหรับความรู้และแนวทางการทำครับ

JK-tech

ผมขอแชร์หน่อยครับ กำลังทำในส่วน OTA เหมือนกัน  (ยังไม่สมบูรณ์ 100%  แต่เผื่อจะเป็นประโยชน์นะครับ )

ผมใช้เอกสารนี้เป็นแนวทางครับ

http://ww1.microchip.com/downloads/en/AppNotes/01157a.pdf

ในเอกสารจะบอกวิธี map linker ใหม่ และอธิบายเกียวกับ protocol

ผมใช้ การเก็บข้อมูลผ่าน GPRS แล้วเก็บลง eeprom แล้วค่อยให้ reset mcu เป็น โหมด bootloader แล้วถึงจะค่อย write data ลง flash

ปล1  ในส่วนของลายละเอียดด้านเทคนิค อื่นๆ  สามารถสอบถามได้นะครับ
ปล2  ของผมสามารถบูทได้แล้วแต่เป็นวิธีการที่หักดิบ(+ลวกๆ) ไปหน่อย   ถ้าได้แชร์ความรู้กัน ก็คงจะดีไม่น้อย

ch25

ขอบคุณครับสำหรับข้อมูล แต่โปรแกรม bootloader ฝั่ง PC ของ microchip ผมไม่เห็นมันใช้ใด้สักตัว เลยไม่รู้จะแกะยังไงต่อ