Về đồng bộ hóa thời gian trong mạng cảm biến không dây

Vấn đề đồng bộ hóa thời gian là một yêu cầu cần thiết của cuộc sống. Ví dụ một người hâm mộ bóng đá có thể thức đến 1 giờ sáng để đón xem trần cầu ở Anh Quốc diễn ra vào lúc 7 giờ tối, sở dĩ múi giờ tuy chênh lệch nhau, người hâm mộ có thể bật tivi lên đúng lúc là vì thời gian trên thế giới được đồng bộ (chuẩn) hóa.

Trong mạng toàn cầu, các máy tính được đồng bộ nhờ hàng ngàn máy chủ với mạng NTP (network time protocol) để các hệ thống đồng bộ với nhau với thời gian chính xác tính bằng mili-giây, mạng này lấy thời gian chuẩn từ các bộ định vị toàn cầu GPS.

Việc đồng bộ hóa thời gian trong mạng cảm biến cũng có vai trò quan trọng không kém. Ví dụ một mạng cảm biến được xây dựng để theo dõi tình trạng cháy rừng, việc một đám cháy được xuất phát từ địa điểm nào sẽ là mối quan tâm lớn. Đám cháy bộc phát từ nơi phát hiện đám lửa đầu tiên, nên thời gian ghi nhận lửa phải được lưu trữ và truyền đi cùng với địa điểm, khi sự cố xảy ra, đến điểm thu thập. Đặc biệt trong hệ phân tán, các tín hiệu truyền đi sớm nhất chưa chắc đã đến đích nhanh nhất, đòi hỏi hệ thời gian giữa các điểm mạng cần được thống nhất và đồng bộ lẫn nhau.

Một ví dụ khác là hệ TDMA (tạm dịch là các truy cập theo phân chia thời gian, hay đa truy cập phân thời) cần thời gian giữa các phần tử trong mạng (subnet) phối hợp càng đồng điệu càng tốt. Việc một nút nào đó mất đồng bộ có thể dẫn tới truy cập kênh truyền không đúng thời điểm, sự xung đột (collision) có thể xảy ra.

Do tầm quan trọng của đồng bộ hóa, từ rất sớm nó đã là đề tài của nhiều nghiên cứu. Một tổng hợp có giá trị cho mạng chuyển mạch là luận văn Tiến sĩ Synchronization over Packet Switching Networks: Theory and Application của Raffaele Noro, hay dự án NTP.

Việc áp dụng các thuật toán vào các bài toán cụ thể là thiên hình vạn trạng, tùy vào từng ứng dụng và mục đích cụ thể. Với mạng cảm biến không dây hoạt động theo hình sao, ví dụ mạng Bluetooth, hay Zigbee, thì nhu cầu subnet này được "đập chung nhịp tim" là cần thiết. Tuy nhiên trong các bảng mô tả kĩ thuật, hay các bài báo sau này vẫn chưa tìm thấy miêu tả cụ thể nào về kĩ thuật đồng bộ hóa này.

Trong phần sau tôi mạo muội thảo luận về một kĩ thuật, được lấy từ mô hình tổng quát trong luận văn của R. Noro. Hy vọng những ai có hứng thú vấn đề này có thể tiếp tục trao đổi. Mô hình mạng, để đơn giản, được giả thiết như sau.

Mô hình mạng:

– Mạng hình sao.

Mạng hình sao để nhằm múc đích đơn giản hóa giả thiết. Trong mạng này gồm một điều phối viên mạng (ĐPVM) – coordinator – điểu khiển, liên kết các điểm cuối khác. Một cách nói khác đây là mạng chủ tớ, như hình dưới đây với Zigbee.

startopology

Với mạng như thế này thì mục đích đồng bộ là để các điểm “tớ” nắm bắt và chạy cùng thời gian trên nút “chủ”.

– Có beacon để biết khi nào có thể “thức dậy”.

Theo một định kì, nút chủ phát ra một tín hiệu gọi là beacon tới các nút tớ. Beacon này chứa thông tin về thời gian kế tiếp mà các nút tớ sẽ nhận beacon kế; nói một cách khác là chu kì của beacon. Điểm cuối, khi nhận beacon, sẽ “canh me” khoảng thời gian này để nhận beacon kế tiếp. Trong khoảng thời gian chờ đó nó có thể làm việc khác hay đặt mình vào chế độ ngủ, nhằm tiết kiệm năng lượng.

Tuy nhiên do một số nguyên nhân mà thời gian “canh me” của điểm tớ và thời gian phát của nút chủ ngày càng cách xa nhau. Việc lệch thời gian này có thể từ các nguyên nhân như (1) bản thân các dao động thạch anh không chính xác (2) ảnh hưởng của nhiệt độ làm mạch dao động bị dao động (3) khi đặt vào chế độ ngủ, tần số sóng dao động cần được giảm xuống qua bộ chia để giảm năng lượng tiêu thụ CPU dẫn đến độ chuẩn giảm (4) tần số giao dộng của các điểm nút là khác nhau (ví dụ mạng được cấu thành từ những mạch khác nhau).

Ví dụ một CPU được cấp nguồn từ thạch anh có độ sai lệch thông thường [10 100] ppm (part per milion), lấy con số cụ thể 100ppm, nghĩa là trong một giây nó chạy sai 100e-6(s). Chạy liên tục trong một ngày độ sai lệch tích lũy cực đại là 100e(-6) * 24* 60* 60 = 8.64s. Từ hai điểm, độ lệch tổng cộng có thể lên tới 8.64 * 2 = 17.3 s. Các mạng cảm biến thường hoạt động hàng tháng trời mà có sự điều chỉnh, nên sai số tích lũy sẽ là không nhỏ. Sai số này sẽ được giảm thiểu nhờ vào mô hình PLL.

Mô hình tổng quát PLL (phase locked loop)

Từ luận văn của Raffaele Noro, mô hình PLL với hệ thống số được biểu diễn như hình sau

timesynchrnization-frame

Mục tiêu của mô hình này là thời gian cuối cùng (phía bên phải) sẽ chạy theo tham biến (cái đi vào bộ Phase comparator). Mô hình PLL có hai đặc điểm chính như sau.

Giữ thời gian: thời gian ở đầu ra là liên tục cho dù tham chiếu đầu vào là rời rạc (trong từng khoản các điểm tớ nhận beacon), hay là dù mất liên lạch với beacon trong vài nhịp (ví dụ do sóng radio bị yếu hay nhiễu).

Triệt tiêu sự chênh lệch: là chức năng của Loop filter (trong hình trên). Có thể dùng bộ điều khiển PI đơn giản để sai số (giữa tham chiếu và kết quả) giảm về bằng 0.

Cách thực nghiệm

Việc lập trình cho bộ PLL vào các nút cảm biến dựa chủ yếu vào timer – định thời. Có thể chia làm 3 phần.

Phần 1 là nguồn dao động mà điểm tớ muốn được hòa nhịp cùng. Nguồn đồng bộ này được thu nhận từ beacon.

synchronization

Phần 2 là bộ điều khiển PI, đầu vào là sai lệch giữa đồng hồ trên nút chủ và của chính nút đó (Tín hiệu phản hồi là thời gian địa phương chạy theo đồng hồ của từng nút tớ). Kết quả ra là số xung đưa vào bộ đếm (pulse counter)

Phần 3 là bộ đếm xung, sử dụng xung nhịp của chính nó, tuy nhiên giá trị cuối cùng sẽ được cộng (trừ) với kết quả từ PI mới thành thời gian cuối cùng.

Như vậy có thể dự đoán được thời gian của nút tớ sẽ bám theo được với nút chủ, dù cả với trường hợp tệ nhất là mất liên lạc trong vài chu kì (nhờ tính chất giữ thời gian của bộ PLL)

Với mạng mắt lưới hay hình cây, vấn đề tổng quát và phức tạp hơn, có thể nghĩ đến việc đồng bộ từng vùng hay những nút đặc biệt mà thôi. Việc này còn dài dài trước mắt. Một nguyên nhân mạng Zigbee vẫn chưa được ứng dụng rộng rãi là do sự đồng bộ chưa tốt, mạng diện rộng (mắt lưới hay hình cây) thường xuyên bị xung đột.

Cuối cùng, tất cả còn là phân tích. Mô phỏng hay thực nghiệm chưa được thực hiện🙂. Những ai có hứng thú về thực nghiệm vấn đề này có thể tìm thấy thông tin thú vị từ cuốn sách TimeSynchronization and Calibration in Wireless Sensor Networks của Kay Romer,Philipp Blum, Lennart Meier (có thể tải miễn phí).

2 thoughts on “Về đồng bộ hóa thời gian trong mạng cảm biến không dây”

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s