SSI คือ อะไร

โปรโตคอล Simple Sensor Interface (SSI) เป็นโปรโตคอลการสื่อสารอย่างง่ายที่ออกแบบมาสำหรับการถ่ายโอนข้อมูลระหว่างคอมพิวเตอร์หรืออาคารผู้โดยสารและเซ็นเซอร์อัจฉริยะ โปรโตคอล SSI เป็นโปรโตคอลชั้นแอพลิเคชันเช่นเดียวกับในรูปแบบ OSI

โปรโตคอล SSI ได้รับการพัฒนาร่วมกันโดย Nokia, Vaisala, Suunto, Ionific, Mermit และ University of Oulu ปัจจุบัน SSI กำลังได้รับการพัฒนาภายในโครงการ Mimosa ซึ่งเป็นส่วนหนึ่งของโครงการกรอบงานสหภาพยุโรปเพื่อการวิจัยและพัฒนาเทคโนโลยี

โปรโตคอล SSI ใช้ในการสื่อสารแบบจุดต่อจุดผ่านแอพพลิเคชั่น UART และเครือข่าย nanoIP SSI ยังมีเซ็นเซอร์โพลและข้อมูลสตรีมมิ่งเซ็นเซอร์ สำหรับแท็กเซ็นเซอร์ RFID SSI ระบุแผนที่หน่วยความจำสำหรับข้อมูลเซ็นเซอร์

เกณฑ์สำหรับการพัฒนาโปรโตคอล SSI คือ:

วัตถุประสงค์ทั่วไป
ง่าย – ค่าใช้จ่ายน้อยที่สุด
รอยเท้าขนาดเล็กบนฝั่งเซิร์ฟเวอร์ (เซ็นเซอร์)
ตัวอย่างการติดตั้งโปรโตคอล SSI สำหรับไมโครคอนโทรลเลอร์ MSP430 จะถูกเผยแพร่เป็นโอเพ่นซอร์สในช่วงเดือนสิงหาคม 2549 โดย Nokia

โครงสร้างข้อความ SSI
ข้อความ SSI ประกอบด้วยส่วนหัว 2 ไบต์และส่วนของข้อมูล n-byte ส่วนหัวประกอบด้วยหนึ่งไบต์ที่อยู่ (wildcard คือ ‘?’, 0x3F ใน ASCII) และประเภทข้อความ / คำสั่งหนึ่งไบต์ ค่าที่เป็นไปได้ที่แตกต่างกันสำหรับประเภทข้อความ / คำสั่งจะแสดงในฐานคำสั่ง SSI v1.2

ฐานคำสั่ง SSI v1.2

คำสั่งไบต์ คำสั่ง รายละเอียด
Q,q (0x51, 0x71) C-> สอบถาม
A,a (0x41, 0x61) <-S ตอบแบบสอบถาม
C,c (0x43, 0x63) C-> ค้นพบเซ็นเซอร์
N,n (0x4E, 0x6E) <-S ค้นหาคำตอบ
Z,z (0x5A, 0x7A) C-> รีเซ็ตอุปกรณ์เซ็นเซอร์
G,g (0x47, 0x67) C-> รับข้อมูลการกำหนดค่าสำหรับเซ็นเซอร์
X,x (0x58, 0x78) <-S การตอบสนองข้อมูลการกำหนดค่า
S,s (0x53, 0x73) C-> ตั้งค่าข้อมูลการกำหนดค่าสำหรับเซ็นเซอร์
R,r (0x52, 0x72) C-> ขอข้อมูลเซ็นเซอร์
V,v (0x56, 0x76) <-S การตอบสนองข้อมูลเซ็นเซอร์
D,d (0x44, 0x64) <-S การตอบสนองของเซ็นเซอร์ที่มีหนึ่งสถานะไบต์
M,m (0x4D, 0x6D) <-S การตอบสนองของเซ็นเซอร์ที่มีจุดข้อมูลมากมาย
O,o (0x4F, 0x6F) C-> สร้างผู้สังเกตการณ์เซ็นเซอร์
Y,y (0x59, 0x79) <-S สร้างผู้สังเกตการณ์แล้ว
K,k (0x4B, 0x6B) <-> ลบผู้สังเกตการณ์ / ผู้ฟังเซ็นเซอร์
U,u (0x55, 0x75) <-> ผู้สังเกตการณ์ / ผู้ฟังเสร็จสิ้น
L,l (0x4C, 0x6C) <-S ขอฟังเซ็นเซอร์
J,j (0x4A, 0x6A) C-> สร้างผู้ฟังเซ็นเซอร์แล้ว
E,e (0x45, 0x65) <-> ความผิดพลาด
F,f (0x46, 0x66) <-> ข้อมูลฟรีสำหรับวัตถุประสงค์ที่กำหนดเอง

 

กลุ่มคำสั่ง:

Q –   สอบถาม
A –   ตอบแบบสอบถาม
C –   การค้นพบเซ็นเซอร์
N – การตอบกลับการค้นพบ
Z – รีเซ็ต
G – รับการกำหนดค่าเซ็นเซอร์
S – กำหนดค่าเซ็นเซอร์
จะใช้ในการค้นหาและกำหนดค่าหน่วยเซ็นเซอร์ที่ใช้โปรโตคอล SSI

กลุ่มคำสั่ง:

R – ขอข้อมูลเซ็นเซอร์
V – การตอบสนองข้อมูล
D – การตอบสนองข้อมูลด้วยฟิลด์สถานะ
จะใช้ในการอ่านข้อมูลเซ็นเซอร์นาน ๆ ครั้ง

คำสั่งที่กำหนดไว้สำหรับการสตรีมข้อมูลมีดังนี้:

O – สร้างผู้สังเกตการณ์เซ็นเซอร์
Y – สร้างผู้สังเกตการณ์แล้ว
K – ลบผู้สังเกตการณ์
ผู้สังเกตการณ์เสร็จสิ้นแล้ว
L – ฟังคำขอเซ็นเซอร์
J – สร้างผู้ฟังเซ็นเซอร์แล้ว
V – การตอบสนองข้อมูล
M – การตอบสนองข้อมูลที่มีจุดข้อมูลมากมาย

SSI แบบจุดต่อจุด
การส่งข้อความแบบจุดต่อจุดด้วย SSI สามารถทำได้ด้วย SSI / UART ข้อความ SSI UART ประกอบด้วยส่วนหัว UART 3 ไบต์ข้อความ SSI เป็นส่วนของข้อมูลและการตรวจสอบซ้ำซ้อน Cyclic ที่เป็นทางเลือก การใช้เช็คซัมถูกกำหนดโดยประเภทข้อความ / คำสั่ง SSI พร้อมกับคำสั่งตัวพิมพ์เล็กที่ระบุการใช้ CRC ส่วนหัวประกอบด้วย start byte (0xFE), ความยาว 2 ไบต์ (ทั้งหมด) ของข้อความและความยาว Negative bitcoin 2 ไบต์เพื่อช่วยระบุการเริ่มต้นของเฟรม

เครือข่าย SSI
การสร้างเครือข่าย SSI ในสภาพแวดล้อมแบบตัวแปรใช้ nanoIP ในกรณีทั่วไปที่ใช้ SSI ข้อความส่วนบุคคลนั้นไม่สำคัญดังนั้นจึงใช้ nanoUDP (UDP แบบย่อที่กำหนดโดย nanoIP) เป็นรูปแบบข้อความ หากข้อความส่วนบุคคลมีความสำคัญสามารถใช้ nanoTCP ได้เนื่องจากจะให้การควบคุมการไหลและการส่งสัญญาณซ้ำโดยมีขนาดของข้อความและเพิ่มการรับส่งข้อมูลในเครือข่าย

ข้อความ nanoUDP ประกอบด้วยส่วนหัว nanoUDP 5 ไบต์ส่วนของข้อมูล n-byte เพย์โหลดและการตรวจสอบ CRC ขนาด 2 ไบต์ที่เป็นทางเลือก ส่วนหัวประกอบด้วยหนึ่งโปรโตคอลไบต์ความยาวข้อความ 2 ไบต์ (ความยาวทั้งหมดรวมถึงส่วนหัวและ CRC) พอร์ตต้นทาง 1 ไบต์และหมายเลขพอร์ตปลายทาง 1 ไบต์ หมายเลขพอร์ตปลายทางควรเป็น 0x28 สำหรับข้อความ SSI

ประวัติรุ่น
0.1 14 มีนาคม 2546
0.2 29 เมษายน 2546
0.3 20 พฤษภาคม 2546
0.4 2 ตุลาคม 2546
0.5 5 ธันวาคม 2546 ไม่เข้ากันกับก่อนหน้านี้
0.6 3 พฤศจิกายน 2547
0.7 22 ธันวาคม 2547
0.8 14 มกราคม 2548
1.0 11 เมษายน 2548
1.1 27 ตุลาคม 2548
1.2 27 พฤษภาคม 2549 ไม่เข้ากันกับก่อนหน้านี้