รับใบเสนอราคาฟรี

ตัวแทนของเราจะติดต่อท่านโดยเร็ว
อีเมล
ชื่อ-นามสกุล
ชื่อบริษัท
ข้อความ
0/1000
ข่าวสาร
หน้าแรก > ข่าวสาร

การเริ่มต้นใช้งานกล้องบน Linux สำหรับ RK3576: จากไดรเวอร์เซนเซอร์ไปยังเฟรมแรก

Sep 18, 2026

RK3576 คือโปรเซสเซอร์ที่พัฒนาโดย Rockchip สำหรับการประมวลผลภาพในอุตสาหกรรม การรักษาความปลอดภัยอัจฉริยะ และอุปกรณ์วิเคราะห์ภาพด้วยปัญญาประดิษฐ์ โดยมี ISP V3.9 ซึ่งเป็นหน่วยประมวลผลสัญญาณภาพ (รองรับความละเอียดสูงสุดถึง 16 ล้านพิกเซล) รวมอยู่ภายในตัว และมีโมดูลรับสัญญาณ MIPI CSI-2 จำนวนสามโมดูล (ประกอบด้วยโมดูล D-PHY เวอร์ชัน 2.0 สองโมดูล และโมดูล C/D-PHY หนึ่งโมดูล) แต่ละเลนของ D-PHY รองรับอัตราการส่งข้อมูลสูงสุด 4.5 Gbps แต่ละทริโอของ C-PHY รองรับอัตราการส่งข้อมูลสูงสุด 2.5 Gsps และแต่ละพอร์ต CSI รองรับช่องทางเสมือน (virtual channel) ได้สี่ช่อง

โซลูชันกล้องสำหรับ RK3576 ออกแบบขึ้นรอบกรอบการทำงาน Linux Media และแบบจำลองอุปกรณ์ย่อย (subdevice) ภายใต้ V4L2-subdev โดยเส้นทางการประมวลผลข้อมูลทั้งหมดมีลำดับดังนี้: เซนเซอร์ภาพ → คอนโทรลเลอร์รับสัญญาณ MIPI CSI → หน่วยจับภาพวิดีโอ (VICAP) → ISP V3.9 เซนเซอร์ทำหน้าที่เป็นอุปกรณ์ย่อยที่แยกต่างหาก และทำงานร่วมกับ MIPI CSI, VICAP และ ISP เพื่อสร้างท่อส่งข้อมูลการรับภาพที่สมบูรณ์

9fc96edf-ab49-422a-ab84-c8be9dfe7c83.png

แม้ว่า RK3576 จะมีช่องรับสัญญาณ MIPI CSI สามช่อง และ VICAP จะสามารถรับสตรีมภาพหลายสตรีมพร้อมกันได้ แต่ ISP เวอร์ชัน 3.9 เป็นฮาร์ดแวร์แบบช่องเดียว จึงสามารถประมวลผลอัลกอริทึม ISP บนสตรีมภาพเพียงหนึ่งสตรีมต่อครั้งเท่านั้น

ระหว่างการดีบักโปรเจกต์ ปัญหาที่อาจเกิดขึ้นได้แก่ การสื่อสาร I2C ผิดปกติ ลิงก์ MIPI ไม่เสถียร หรือไม่สามารถสร้าง Media pipeline ได้ ซึ่งสุดท้ายจะทำให้ไม่สามารถส่งออกเฟรมภาพแรกได้ บทความนี้นำเสนอแนวทางการดีบักอย่างครบถ้วนจากมุมมองการนำไปใช้งานจริงในเชิงวิศวกรรม และสามารถใช้เป็นแนวทางอ้างอิงสำหรับการดีบักระบบวิชันแบบฝังตัว

1. การเตรียมฮาร์ดแวร์และเคอร์เนล: กำจัดปัญหาฮาร์ดแวร์ระดับล่างก่อนเริ่มการดีบัก

ในการดีบักไดรเวอร์ ปัญหาส่วนใหญ่ที่เราพบไม่ได้เกิดจากโค้ดไดรเวอร์เอง แต่เกิดจากปัญหาระดับล่าง เช่น การต่อสายฮาร์ดแวร์ การจัดลำดับการจ่ายไฟ หรือการตั้งค่าเคอร์เนลที่ขาดหายไป ดังนั้น ก่อนเริ่มพัฒนาไดรเวอร์เซ็นเซอร์ ควรตรวจสอบและยืนยันสภาพแวดล้อมของฮาร์ดแวร์และเคอร์เนลระดับล่างก่อน

การตรวจสอบฮาร์ดแวร์ที่สำคัญ ได้แก่ เส้นทางจ่ายไฟให้เซ็นเซอร์ บัส I2C ลิงก์แบบมิปิเชิงอนุพันธ์ (MIPI differential links) และขา GPIO สำหรับรีเซ็ตหรือควบคุมการจ่ายไฟ

ebac6959-e7fa-403f-b478-9f36f23e227d.png

ลำดับการจ่ายไฟให้เซ็นเซอร์ทำงาน (power-up sequencing) เป็นหนึ่งในส่วนที่สำคัญที่สุดของการดีบัก แหล่งจ่ายไฟหลายช่อง เช่น AVDD, DOVDD และ DVDD ต้องปฏิบัติตามลำดับการจ่ายไฟที่ผู้ผลิตเซ็นเซอร์ระบุอย่างเคร่งครัด การเบี่ยงเบนของแรงดันไฟฟ้าที่จ่ายเกินข้อกำหนด หรือการจัดเวลาการจ่ายไฟ/ตัดไฟผิดพลาด อาจทำให้การสื่อสารผ่าน I2C ล้มเหลวโดยตรง และทำให้เซ็นเซอร์ทำงานผิดปกติ

บัส I2C: ตรวจสอบการกำหนดค่าการใช้ขาซ้ำ (pin-multiplexing) และที่อยู่ slave ของเซ็นเซอร์ พร้อมยืนยันว่ามีตัวต้านทานดึงขึ้น (pull-up resistors) ติดตั้งอย่างถูกต้อง

MIPI: ยืนยันช่องทาง CSI ที่ฮาร์ดแวร์ใช้งาน จำนวนเลน MIPI และการจับคู่อิมพีแดนซ์บนสายสัญญาณแบบดิฟเฟอเรนเชียล นอกจากนี้ยังต้องยืนยันว่าสัญญาณนาฬิกาอ้างอิงของเซนเซอร์ (XVCLK) ที่ส่งออกโดย RK3576 ทำงานอย่างถูกต้อง

ขาควบคุมรีเซ็ต/ปิดพลังงาน: ระบุลอจิกของระดับที่ใช้งาน (แอคทีฟไฮ/แอคทีฟโลว์) และตรวจสอบให้แน่ใจว่าการกำหนดค่า GPIO สอดคล้องกับแผนผังวงจร

การกำหนดค่าเคอร์เนล: ตรวจสอบตัวเลือกเคอร์เนลสำหรับระบบย่อยด้านมีเดีย อุปกรณ์ย่อย V4L2-subdev ไดรเวอร์ตัวควบคุมและ PHY ของ MIPI CSI VICAP และ ISP เวอร์ชัน 3.9 หากส่วนประกอบที่จำเป็นไม่ได้ถูกคอมไพล์ไว้ในเคอร์เนล หรือถูกคอมไพล์เป็นโมดูลแต่โหลดไม่สำเร็จ ท่อส่งสัญญาณมีเดียจะไม่สามารถระบุฮาร์ดแวร์กล้องได้ หลังจากสร้างและแฟลชเคอร์เนลแล้ว ให้ตรวจสอบสถานะการโหลดของแต่ละโมดูลไดรเวอร์ก่อนเป็นอันดับแรก ตรวจสอบบันทึก dmesg และยืนยันว่าไม่มีข้อผิดพลาด เช่น โมดูลหายไปหรือการเริ่มต้นล้มเหลว

2. การกำหนดค่าทรีอุปกรณ์ (DTS): การสร้างการเชื่อมต่อระหว่างอุปกรณ์

ต้นไม้อุปกรณ์กล้อง RK3576: ใช้อธิบายทรัพยากรฮาร์ดแวร์ และใช้โหนดพอร์ตและเอนด์พอยต์เพื่อผูกการเชื่อมโยงของช่องสัญญาณภาพระหว่างเซนเซอร์ MIPI CSI VICAP และ ISP

โหนดเซนเซอร์ถูกแนบไว้ภายใต้โหนดบัส I2C ที่เกี่ยวข้อง และกำหนดที่อยู่ slave ของ I2C ขาควบคุมรีเซ็ต ขาควบคุมการปิดจ่ายไฟ และนาฬิกาอ้างอิงของเซนเซอร์ สามารถกำหนดค่าคุณสมบัติต่าง ๆ เพื่อเลื่อนการเริ่มต้นเซนเซอร์จนกว่าฮาร์ดแวร์ PHY ของ CSI จะพร้อมใช้งาน ซึ่งจะหลีกเลี่ยงปัญหาความไม่สอดคล้องกันของเวลาที่เกิดจาก PHY ที่ยังไม่พร้อม โหนดเอนด์พอยต์ภายในพอร์ตของโหนดเซนเซอร์ชี้ไปยังอินพุต MIPI CSI และระบุจำนวนเลนข้อมูล MIPI

โหนดตัวควบคุม MIPI CSI มีพอร์ตสองช่อง ได้แก่ พอร์ตอินพุตที่เชื่อมต่อกับเซ็นเซอร์ภาพ และพอร์ตเอาต์พุตที่เชื่อมต่อกับหน่วย VICAP จากนั้น VICAP จะส่งข้อมูลภาพออกไปยัง ISP เวอร์ชัน 3.9 โปรดทราบว่าเอนด์พอยต์ทั้งสองฝั่งต้องอ้างอิงถึงกันแบบสองทาง และคุณสมบัติ remote-endpoint ที่ปลายทั้งสองด้านต้องสอดคล้องกันแบบหนึ่งต่อหนึ่ง หากการผูกมัดแบบสองทางไม่ตรงกัน กรอบงาน Media จะไม่สามารถระบุเส้นทางข้อมูลที่สมบูรณ์ได้ หลังจากปรับเปลี่ยน คอมไพล์ และแฟลชไฟล์ DTS แล้ว ให้ตรวจสอบบันทึก dmesg ก่อนเป็นลำดับแรก เพื่อยืนยันว่าโหนดอุปกรณ์ทั้งหมดอยู่ในสถานะปกติ และไม่มีข้อผิดพลาด deferred-probe ที่เกิดซ้ำอย่างต่อเนื่อง ปรากฏการณ์ deferred probing ซ้ำๆ มักบ่งชี้ว่ามีการกำหนดค่า GPIO นาฬิกา หรือแหล่งจ่ายพลังงานผิดพลาด

6dce10d2-b1e9-4e9a-937b-a9e64ec9a8d8.png

3. การพัฒนาไดรเวอร์เซ็นเซอร์ย่อย: แบบจำลอง V4L2-subdev

ไดรเวอร์เซนเซอร์สำหรับแพลตฟอร์ม RK3576 ถูกพัฒนาขึ้นโดยใช้เฟรมเวิร์ก V4L2-subdev ไดรเวอร์เซนเซอร์ไม่สร้างโหนด /dev/video แต่มีอยู่เพียงในฐานะเอนทิตีย่อยของสื่อ (Media subdevice) เท่านั้น หน้าที่หลักของมันประกอบด้วยการกำหนดค่ารีจิสเตอร์ของเซนเซอร์ การจัดการพลังงานและรีเซ็ต การกำหนดค่ารูปแบบภาพ และการควบคุมการเริ่มต้นและหยุดสตรีม

ไดรเวอร์นี้แบ่งออกเป็นห้าโมดูลหลัก ได้แก่ การตรวจสอบผ่าน I2C การควบคุมพลังงานและรีเซ็ต ตารางรีจิสเตอร์สำหรับโหมด การกำหนดค่ารูปแบบแพด (pad-format) และการควบคุมการเริ่มต้นและหยุดสตรีม

ในขั้นตอนการตรวจสอบของไดรเวอร์ รหัสตัวระบุชิปเซ็นเซอร์ (Chip ID) จะถูกอ่านผ่านบัส I2C เพื่อยืนยันว่าชิปถูกรับรู้อย่างถูกต้อง หากการอ่านรหัส ID ล้มเหลว การแก้ไขปัญหาสามารถมุ่งเน้นไปที่ข้อบกพร่องของฮาร์ดแวร์ที่เกี่ยวข้องกับบัส I2C แหล่งจ่ายไฟ และสัญญาณรีเซ็ตได้โดยตรง ฟังก์ชันการจ่ายไฟ/รีเซ็ตจะดำเนินการตามลำดับการเปิดและปิดแหล่งจ่ายไฟของเซ็นเซอร์อย่างครบถ้วน: ขณะเปิดแหล่งจ่ายไฟ แต่ละเรลจ่ายไฟจะถูกเปิดใช้งานตามลำดับ จากนั้นสัญญาณขาเรซิตจะถูกกระตุ้นเป็นเวลาตามที่กำหนด แล้วจึงปล่อยสัญญาณเรซิต และให้เวลาแก่เซ็นเซอร์ในการปรับเสถียรภาพภายในตัวเอง ส่วนลำดับการปิดแหล่งจ่ายไฟจะดำเนินการกลับกัน

ตารางการลงทะเบียนโหมดจัดเก็บการกำหนดค่ารีจิสเตอร์ของเซนเซอร์อย่างสมบูรณ์ สำหรับความละเอียด อัตราเฟรม และอัตรา MIPI ที่ต่างกัน เมื่อเลเยอร์บนสุดเปลี่ยนพารามิเตอร์การจับภาพ ไดรเวอร์จะเขียนชุดรีจิสเตอร์ที่สอดคล้องกันทั้งหมด อินเทอร์เฟซรูปแบบแพด (pad-format) ใช้กำหนดรูปแบบภาพบนมีเดียบัส ซึ่งต้องตรงกับรูปแบบเบเยอร์ที่เซนเซอร์ส่งออกอย่างเคร่งครัด (เช่น BGGR หรือ RGGB) การกำหนดค่าที่ไม่ถูกต้องจะทำให้เกิดข้อผิดพลาดของสีภาพโดยตรง อินเทอร์เฟซควบคุมสตรีม (stream-control) ใช้ stream_on เพื่อเขียนคำสั่งรีจิสเตอร์ที่เปิดใช้งานการส่งออกภาพ MIPI จากเซนเซอร์ ในขณะที่ stream_off ใช้หยุดการส่งภาพ หลังจากดำเนินการไดรเวอร์แล้ว จะเพิ่มตัวเลือกการสร้างลงในไฟล์ Kconfig และ Makefile ของเคอร์เนล เพื่อให้สามารถรวมไดรเวอร์ไว้ในเคอร์เนลโดยตรง หรือคอมไพล์เป็นโมดูลเคอร์เนลที่โหลดได้แบบแยกต่างหาก

4. การดีบักแบบขั้นตอน: รับเฟรมแรกทีละขั้นตอน

ไม่แนะนำให้พยายามจับภาพทันที ให้ใช้วิธีการแก้ไขปัญหาแบบชั้นตอนสามขั้นตอน: ยืนยันว่าไดรเวอร์เซ็นเซอร์โหลดสำเร็จ → ตรวจสอบว่าโครงสร้างสื่อ (Media pipeline) เชื่อมต่อครบถ้วน → จับภาพดิบด้วย V4L2

009954b9-0ee8-4b2b-a85c-c66149963d38.png

ขั้นตอนที่ 1: ยืนยันว่าไดรเวอร์เซ็นเซอร์โหลดสำเร็จ

หลังจากระบบบูตเสร็จ ให้ตรวจสอบบันทึก dmesg และค้นหาข้อความล็อกที่ไดรเวอร์เซ็นเซอร์พิมพ์ออกมา ใช้คำสั่ง i2cdetect เพื่อสแกนบัส I2C ที่เกี่ยวข้อง และยืนยันว่าสามารถตรวจพบที่อยู่ของเซ็นเซอร์ (slave address) หรือไม่

  • หากไม่พบอุปกรณ์ I2C เลย: ให้ตรวจสอบแหล่งจ่ายไฟของเซ็นเซอร์ ลอจิกการรีเซ็ต การเชื่อมต่อฮาร์ดแวร์ I2C แบบบัดกรี และการกำหนดฟังก์ชันขา (pin multiplexing)
  • หากตรวจพบที่อยู่ I2C ได้ แต่ค่า Chip ID ที่อ่านได้ผิดปกติ: แสดงว่าเส้นทางฮาร์ดแวร์ I2C ทำงานได้ตามปกติ และปัญหาน่าจะเกิดจากที่อยู่รีจิสเตอร์ไม่ถูกต้อง หรือรุ่นเซ็นเซอร์ไม่ตรงกับที่ระบุไว้

ขั้นตอนที่ 2: ยืนยันโครงสร้างสื่อ (Media Framework Pipeline)

ใช้คำสั่ง media-ctl เพื่อดูรายการของหน่วยงานอุปกรณ์มีเดีย ภายใต้สภาวะปกติ หน่วยงานย่อย เช่น เซนเซอร์ mipi_csi vicap และ isp39 ควรปรากฏให้เห็น โดยแต่ละพอร์ตแพดจะถูกตรวจจับอย่างถูกต้อง

  • หากหน่วยงานเซนเซอร์ไม่ปรากฏขึ้น แสดงว่าการเริ่มต้นไดรเวอร์เซนเซอร์ล้มเหลว
  • หากหน่วยงานมีอยู่แล้ว แต่การเชื่อมโยงถูกตัดขาด แสดงว่าการจับคู่แบบสองทิศทางของปลายทางในไฟล์ DTS ไม่ถูกต้อง

ระหว่างการแก้ไขข้อผิดพลาด สามารถใช้คำสั่ง media-ctl กำหนดค่าพื้นที่การประมวลผลทั้งหมดด้วยตนเองได้ ได้แก่ การสร้างการเชื่อมโยงระหว่างหน่วยงาน และการตั้งค่ารูปแบบภาพ ความละเอียด และการกำหนดค่าเลนสำหรับแต่ละขั้นตอนของหน่วยงานย่อย ข้อผิดพลาดที่เกิดจากคำสั่ง media-ctl มักเกิดจากจำนวนเลน รูปแบบ media-bus หรือพารามิเตอร์ความละเอียดที่เกินขีดความสามารถของฮาร์ดแวร์เซนเซอร์ การตั้งค่า media-ctl ที่สำเร็จแสดงว่าเส้นทางซอฟต์แวร์จากเซนเซอร์ไปยัง ISP ได้ถูกสร้างขึ้นแล้ว

ขั้นตอนที่ 3: จับภาพด้วย V4L2 และรับเฟรมดิบเฟรมแรก

VICAP/ISP สร้างโหนด /dev/video ซึ่งทำหน้าที่เป็นจุดเข้าใช้งานในพื้นที่ผู้ใช้สำหรับการจับภาพ ใช้คำสั่ง v4l2-ctl เพื่อกำหนดรูปแบบพิกเซลของภาพ จากนั้นจับเฟรมเดียวผ่าน mmap และบันทึกข้อมูลเบเยอร์ดิบ (Bayer RAW) หากขนาดไฟล์ RAW ที่ได้ตรงกับค่าทฤษฎีที่คาดไว้ แสดงว่าการจับเฟรมภาพแรกสำเร็จแล้ว ไฟล์ RAW นั้นสามารถเปิดดูได้ด้วยเครื่องมือวิเคราะห์ภาพระดับมืออาชีพ เพื่อตรวจสอบภาพเบเยอร์ต้นฉบับ

5. วิธีแก้ไขปัญหาทั่วไป

  • media-ctl รายงานข้อผิดพลาดขณะกำหนดค่าลิงก์: ให้ตรวจสอบก่อนว่าปลายทาง DTS แบบสองทิศทาง (bidirectional DTS endpoint) ถูกผูกเชื่อมต่อกันอย่างถูกต้องหรือไม่ จากนั้นตรวจสอบรูปแบบ media-bus ความละเอียด และจำนวนเลน (lane count)
  • การจับเฟรมผ่าน V4L2 หมดเวลาโดยไม่มีข้อมูลภาพออกมา: ยืนยันว่าคำสั่ง stream_on ถูกเรียกใช้อย่างถูกต้องภายในไดรเวอร์ ว่า CSI PHY ได้ล็อกสัญญาณนาฬิกาเรียบร้อยแล้ว และเซนเซอร์กำลังส่งสตรีมข้อมูล MIPI จริง
  • ภาพเสียหรือมีสัญญาณรบกวนเป็นแถบ: สาเหตุที่เป็นไปได้ ได้แก่ อัตราความถี่นาฬิกา MIPI ไม่ถูกต้อง จำนวนเลนไม่ตรงกับข้อกำหนด การจับคู่รูปแบบเบเยอร์ผิดพลาด หรือแรงดันไฟฟ้าจ่ายให้เซนเซอร์มีคลื่นรบกวนมากเกินไป
  • การส่งออกภาพไม่สม่ำเสมอ หรือเฟรมหายเป็นครั้งคราว: เวลาในการเปิดใช้งานหรือรีเซ็ตเซนเซอร์อาจไม่เป็นไปตามข้อกำหนด หรือแหล่งจ่ายไฟฟ้าของฮาร์ดแวร์อาจไม่มีความเสถียรเพียงพอ

เรามีโซลูชัน RK3576 ที่พัฒนาอย่างสมบูรณ์แบบแล้ว พร้อมศักยภาพเชิงมืออาชีพด้านการพัฒนาเฉพาะทาง การปรับแต่งฮาร์ดแวร์ และการผลิตจำนวนมาก สำหรับเซนเซอร์ภาพที่แตกต่างกัน รวมถึงความต้องการด้านความละเอียดและอัตราเฟรมที่หลากหลาย เราสามารถให้บริการปรับปรุงฮาร์ดแวร์ ดีบักไดรเวอร์ และเพิ่มประสิทธิภาพระบบแบบครบวงจร เพื่อสนับสนุนโครงการเฉพาะทางอย่างมีประสิทธิภาพในสาขาการมองเห็นอุตสาหกรรม ระบบรักษาความปลอดภัยอัจฉริยะ ปลายทางการมองเห็นด้วยปัญญาประดิษฐ์ และแอปพลิเคชันอื่น ๆ ติดต่อเราได้ที่ [email protected].

ร้อนแรงข่าวร้อนแรง

รับใบเสนอราคาฟรี

ตัวแทนของเราจะติดต่อท่านโดยเร็ว
อีเมล
ชื่อ-นามสกุล
ชื่อบริษัท
ข้อความ
0/1000