Với mỗi Packet, phần đầu của gói tin sẽ bao gồm hai trường thơng tin là ID có
kích thước 2 bytes và CRC cũng có kích thước 2 bytes (Hình 3.10). Hai bytes
trường ID mã hóa cho số thứ tự Segment (1, 2, 3 hoặc 4) và số thứ tựPacket để
quyết định vị trí của Packet khi người lập trình tổng hợp dữ liệu và hình thành khung hình 160 x 120 pixel.
Mỗi khung hình 160 x 120 pixel thu được từ camera bao gồm 4 Segment, mỗi Segment gồm 60 Packet. Như vậy, tổng cộng có 240 Packet được sắp xếp lần
lượt từSegment 1 đến Segment 4 với mỗi hàng sẽ gồm 2 Packet như Hình 3.11.
Hình 3.12: Thơng tin được mà hóa ở phần đầu một Packet [18]
Hình 3.12 biểu diễn thơng tin được mã hóa ở phần đầu mỗi Packet với tổng cộng 32 bits. Bit đầu tiên ln ln có giá trị bằng không, ba bit tiếp theo được gọi là TTT bits, và theo sau là 12 bits biểu diễn số thứ tự Packet. Lưu ý rằng số thứ
Packet sẽđược đếm từ0 đến 59 cho một Segment và quay lại 0 khi đến Segment tiếp theo. Với tất cả Packet ngoại trừ Packet có số thứ tự 20 thì có thể bỏ qua
TTT bits. Còn riêng đối với Packet có số thứ tự 20, TTT bits biểu diễn số thứ tự
của Segment (1, 2, 3 hoặc 4) đang được camera truyền đi. Trong một vài trường hợp, camera có thể truyền đi một Segment có số thứ tựlà khơng, điều này này có
nghĩa là Segment này khơng có ý nghĩa, người lập trình hồn tồn có thể bỏ qua Segment này. Theo sau 16 bits mã hóa cho số thứ tự Segment và số thứ tự Packet là 16 bits cho phần CRC, tuy nhiên trong đồ án này, phần tính tốn và kiểm tra
CRC này được bỏqua để giảm khối lượng tính tốn cho Raspberry Pi 4.
Theo quy ước của FLIR Lepton thì dữ liệu cho mỗi pixel là một số 2 bytes (16 bits) lưu giá trị nhiệt độởđơn vị Kelvin và được nhân lên 100 lần, do đó để hình
thành được một hàng 160 pixel ta cần lấy ra phần payload của 2 Packet với tổng cộng 320 bytes dữ liệu rồi ghép lại. Cứnhư vậy, từ 240 Packet cho 4 Segment ta
39 tổng hợp được 120 hàng và tạo được một ma trận dữ liệu 160 x 120 tương ứng với một khung hình.
Lưu ý: Tại những thời điểm camera khởi động và thời điểm nghỉ giữa các khung hình, camera vẫn sẽ truyền đi những Packet, nhưng những Packet này không mang thông tin cần đọc và được bỏ qua. Để cho người lập trình có thể nhận ra những Packet bỏ qua này, FLIR Lepton sẽ mã hóa 2 bytes đầu của các Packet này ở dạng xFxx (trong đó ‘x’ là những dữ liệu “don’t care”) (Hình 3.13).
Hình 3.13: Định dạng một Packet bỏ qua [18]
Đọc dữ liệu cảm biến DHT22