4.9. אפיקי החיישן

חיישן מצלמה והמיקרו-בקר (MCU) שאיתו הוא מתקשר מחליפים שני סוגים שונים של נתונים על שני אפיקים שונים.

4.9.1. אפיק הבקרה

כל הגדרה של החיישן שוכנת באוגר (register) על השבב – פורמט הפיקסלים, גודל הפריים, זמן החשיפה, ההגבר (gain), הגברי איזון הלבן, יעדי הבקרה האוטומטית וכן הלאה. המיקרו-בקר קורא וכותב לאוגרים אלה דרך אפיק I2C (חלק מהחיישנים משתמשים ב-SPI במקום). שני חוטים (SCL ו-SDA) מחברים את התקן ה-I2C של המיקרו-בקר אל ממשק ה-I2C של החיישן, וכל תצורה שהמשתמש בוחר מתורגמת על ידי המנהל לכתיבה אחת או יותר לאוגרים על אפיק זה.

אפיק הבקרה פועל במהירות נינוחה – בדרך כלל 100 kHz או 400 kHz. הגדרת אוגר בודד אורכת עשרות מיקרו-שניות; הגדרה מחדש של כל החיישן (איפוס, גודל פריים חדש, פורמט פיקסלים חדש) אורכת עשרות עד מאות מילי-שניות, בעיקר מפני שהשבב זקוק לרגע כדי להביא את המצב החדש למצב נקי לאחר כל כתיבה לאוגר. שום דבר מזה אינו צריך לעמוד בקצב של זרם הפיקסלים.

4.9.2. אפיק נתוני הפיקסלים

נתוני הפיקסלים יוצאים מהחיישן על אפיק נפרד, רחב יותר ומהיר בהרבה. שתי משפחות שולטות בתחום.

מקבילי (Parallel) הוא הוותיק מבין השניים. הוא נושא שמונה או עשרה קווי נתונים לביטי הפיקסל, בתוספת שעון פיקסלים (PCLK), אות תוקף-שורה (HSYNC) ואות תוקף-פריים (VSYNC). בכל קצה שעון מופיע בייט פיקסל אחד על קווי הנתונים; HSYNC ו-VSYNC מודיעים למקבל היכן כל שורה וכל פריים מתחילים ומסתיימים. אפיקים מקביליים הם פשוטים, אך התפוקה מוגבלת על ידי המהירות שבה מטריצת הפינים של המיקרו-בקר יכולה לתזמן את כניסת הנתונים – בדרך כלל שעון פיקסלים של 50 עד 100 MHz בקצה העליון.

MIPI CSI-2 – ראשי תיבות של Mobile Industry Processor Interface Camera Serial Interface, גרסה 2 – החליף ברובו את האפיק המקבילי בחיישני תמונה חדשים. הוא נושא את הפיקסלים על זוג או יותר של נתיבים דיפרנציאליים במאות מגה-ביטים לשנייה לכל זוג, עם מספר פינים קטן יותר, רוחב פס גבוה בהרבה ופחות הפרעות אלקטרומגנטיות (EMI). האפיק המקבילי שורד בעיקר בעיצובים ישנים ובחלקים קטנים יותר ובקצב נמוך יותר, שבהם הפשטות שלו עדיין משתלמת.

A diagram showing a sensor block on the left and an MCU block on the right. A bidirectional arrow between them is labelled "I2C (SCL, SDA)". A thicker arrow pointing from the sensor to the MCU is labelled "parallel or MIPI".

החיישן והמיקרו-בקר מחליפים בקרה על אפיק I2C דו-כיווני איטי ונתוני פיקסלים על אפיק מקבילי או MIPI רחב יותר, מהיר יותר וחד-כיווני.

בכל משפחה שבה החיישן משתמש, בצד המיקרו-בקר קיים התקן היקפי בעל פונקציה קבועה הקולט את הפיקסלים הנכנסים וכותב אותם לחוצץ פריימים (frame buffer) בזיכרון. קוד ה-Python לעולם אינו מניע אפיק זה ישירות; הוא רק קורא את חוצץ הפריימים לאחר שהחומרה סיימה למלא אותו.