Được viết bởi cố vấn cấp cao XCODER của RF-star (một nhà viết luận của We-Media)
1. Do sự khác biệt giữa các phiên bản của ngăn xếp giao thức TI ZigBee, làm thế nào để chọn ngăn xếp giao thức phù hợp để phát triển sản phẩm?
Ngăn xếp giao thức TI ZigBee Z-Stack được phát triển từ Z-Stack 0.1 đến Z-Stack 2.5.1a và sau đó là Z-Stack Home 1.2.1, Z-Stack Lighting 1.0.2, Z-Stack Energy 1.0. 1, Z-Stack Mesh 1.0.0. Trong quá trình nâng cấp ngăn xếp giao thức, TI đã chủ yếu thực hiện hai khía cạnh của ngăn xếp giao thức.
1) Thêm một số tính năng mới theo Đặc điểm kỹ thuật ZigBee của ZigBee Alliance.
Ví dụ, ZigBee 2007 là một định tuyến hình cây. Trong ZigBee Pro, định tuyến lưới sắp ra mắt và các thuật toán định tuyến như MTO và Định tuyến nguồn được đề xuất. TI thêm các tính năng mới tương ứng vào ngăn xếp giao thức là sửa một số lỗi liên quan trong thông số kỹ thuật, chẳng hạn như những lỗi có mô tả không rõ ràng.
2) Để sửa lỗi trong chính ngăn xếp giao thức TI ZigBee.
Có thể tìm thấy sự khác biệt của ngăn xếp giao thức giữa phiên bản và phiên bản trước trong Ghi chú phát hành.
Sau phiên bản Z-Stack 2.5.1a, ngăn xếp giao thức TI không tiếp tục được phát hành trực tiếp dưới dạng Z-Stack 2.6.x mà được phát hành dưới dạng Hồ sơ ứng dụng.
Lý do là TI muốn các nhà phát triển chọn ngăn xếp giao thức được nhắm mục tiêu nhiều hơn để phát triển theo ứng dụng thực tế. Ngăn xếp giao thức như Z-stack Home 1.2.1 chủ yếu bao gồm hai phần sau.
1) Core Stack, phần đầu của phần này là phiên bản tiếp nối của Z-Stack 2.5.1a và mới hơn, có thể tìm thấy trong Z-Stack Core Release Notes.txt, Phiên bản 2.6.2.
2) Ngăn xếp giao thức ứng dụng có liên quan đến hồ sơ, chủ yếu liên quan đến ứng dụng thực tế. Ngăn xếp giao thức Tự động hóa Trang chủ đều liên quan đến việc triển khai Hồ sơ Tự động hóa Trang chủ ZigBee. Tương tự, Z-Stack Lighting 1.0.2 và Z-Stack Energy 1.0.1 cũng là một Core Stack với hồ sơ ứng dụng.
a.Z-Stack Home 1.2.2a được phát triển cho các sản phẩm liên quan đến nhà thông minh.
b.Z-Stack Lighting 1.0.2 được phát triển cho các sản phẩm liên quan đến ZLL.
c.Z-Stack Energy 1.0.1 được phát triển cho năng lượng thông minh, Đồng hồ đo, Màn hình trong nhà và các sản phẩm liên quan khác.
d.Z-Stack Mesh 1.0.0 được phát triển cho các sản phẩm liên quan đến các ứng dụng riêng tư, chỉ sử dụng các tính năng liên quan đến giao thức ZigBee tiêu chuẩn, chẳng hạn như định tuyến Mesh, v.v. Lớp ứng dụng do nhà phát triển xác định.
Sau khi Liên minh ZigBee phát hành ZigBee 3.0 giao thức, ngăn xếp giao thức ZigBee mới nhất là Z-Stack 3.0 , hiện đang hỗ trợ CC2530, CC2538, CC2652R, CC265P.
2. Làm thế nào để ZigBee kiểm tra và chứng nhận sản phẩm, những gì cần phải hiểu và những gì quy trình cần phải được tuân theo?
Có một ví dụ về việc phát triển các sản phẩm liên quan đến Tự động hóa gia đình ZigBee tiêu chuẩn. Để bắt đầu, khi các nhà phát triển phát triển sản phẩm, họ phải phát triển sản phẩm theo các sản phẩm được mô tả trong Đặc điểm kỹ thuật hồ sơ tự động hóa trang chủ ZigBee có thể tải xuống tại www.zigbee.org. Sau khi hoàn thành việc phát triển sản phẩm, các nhà phát triển cần hiểu Đặc điểm kỹ thuật kiểm tra hồ sơ tự động hóa trang chủ ZigBee cũng có thể được tải xuống tại www.zigbee.org. Tài liệu mô tả các hạng mục thử nghiệm liên quan mà một sản phẩm cụ thể cần được thử nghiệm trong Nhà thử nghiệm. Ngoài ra còn có một tài liệu PICS bên cạnh hai tài liệu trên. Tài liệu thứ ba mô tả các chức năng được hỗ trợ bởi các sản phẩm cần được chứng nhận và thử nghiệm. Các nhà phát triển so sánh và xác nhận các tính năng trong PICS theo các chức năng thực tế của các sản phẩm đã phát triển và các chức năng được yêu cầu trong Đặc điểm kỹ thuật. Sau đây là quá trình thử nghiệm.
1) Tham gia ZigBee Alliance, sẽ có một phòng thí nghiệm kiểm tra có thể giúp hoàn thành bài kiểm tra.
2) Gửi mẫu đến phòng thí nghiệm kiểm tra và hoàn thành tệp PICS.
3) Sau vòng thử nghiệm trước đầu tiên, phòng thử nghiệm phản hồi kết quả thử nghiệm và nhà phát triển sửa đổi mã mẫu. (Nếu cần thiết)
4) Xác minh mẫu đã sửa đổi trong phòng thử nghiệm, và sau đó bắt đầu thử nghiệm chính thức.
5) Nhà phát triển hoàn thành việc chuẩn bị và gửi tài liệu đăng ký chứng nhận trực tuyến của ZigBee Alliance với sự trợ giúp của phòng thí nghiệm thử nghiệm.
6) Phòng thí nghiệm thử nghiệm nộp báo cáo thử nghiệm chính thức cho Liên minh ZigBee. Liên minh sẽ xem xét và cấp giấy chứng nhận.
Hiện tại, có bảy phòng thử nghiệm có thể thực hiện thử nghiệm ZigBee tiêu chuẩn.
https://zigbeealliance.org/certification/testing-providers/
3.Làm thế nào để chọn địa chỉ MAC 64-bit của thiết bị?
Có hai địa chỉ IEEE trong CC2530 / CC2538 / CC2630, một địa chỉ được gọi là Địa chỉ IEEE chính và địa chỉ còn lại được gọi là Địa chỉ phụ. Địa chỉ IEEE chính được lưu trữ trong Trang thông tin của chip. Địa chỉ Chính này được TI mua từ Hiệp hội IEEE và mỗi địa chỉ trong số đó là duy nhất. Người dùng chỉ có thể đọc giá trị này và không thể xóa / sửa đổi. Đọc địa chỉ trong ngăn xếp giao thức có thể lấy Osal_memcpy (aExtendedAddress, (uint8 *) (P_INFOPAGE + HAL_INFOP_IEEE_OSET), Z_EXTADDR_LEN). Địa chỉ phụ được lưu trong trang cuối cùng của Flash và người dùng có thể thực hiện Đọc / Ghi thông qua chức năng HalFlashRead (HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN).
Ngăn xếp giao thức hoạt động như thế nào để chọn địa chỉ IEEE chính hoặc địa chỉ phụ làm địa chỉ MAC của thiết bị? Hoạt động cụ thể là trong zmain_ext_addr (void).
1) Đọc địa chỉ IEEE từ NV. Nếu địa chỉ MAC đã tồn tại (không có địa chỉ nào là 0xFF), thì đó có thể là địa chỉ MAC.
2) Nếu địa chỉ MAC không tồn tại trong 1), nó có thể được đọc từ vị trí lưu trữ của địa chỉ IEEE phụ. Nếu nó tồn tại trong vị trí lưu trữ của địa chỉ IEEE phụ (không có địa chỉ nào trong số đó là 0xFF), địa chỉ đó có thể được ghi vào NV làm địa chỉ MAC sau này.
3) Nếu địa chỉ MAC không có trong 2), nó có thể được đọc từ vị trí lưu trữ của địa chỉ IEEE chính. Nếu nó tồn tại trong vị trí lưu trữ của địa chỉ IEEE Chính (không có địa chỉ nào trong số đó là 0xFF), địa chỉ đó có thể được ghi vào NV làm địa chỉ MAC sau này.
4) Nếu địa chỉ MAC không nằm trong 3), một địa chỉ biến 64-bit được tạo ngẫu nhiên, được ghi vào NV dưới dạng địa chỉ MAC.
4.End Device là một thiết bị tiêu thụ điện năng thấp với nguồn cung cấp năng lượng từ pin. Sau khi nút bị ngắt kết nối khỏi mạng, làm thế nào để cấm các nút liên tục tìm kiếm mạng hoặc làm thế nào để tăng khoảng thời gian giữa các lần gửi Yêu cầu Báo hiệu?
1) Bắt đầu tìm kiếm mạng: uint8 ZDApp_StartJoiningCycle (void)
Dừng tìm kiếm trên mạng: uint8 ZDApp_StopJoiningCycle (void)
2) Thay đổi chu kỳ gửi Yêu cầu Báo hiệu.
Sửa đổi biến: zgDefaultStartingScanDuration
// Giá trị đặt hàng báo hiệu
#define BEACON_ORDER_NO_BEACONS 15
#define BEACON_ORDER_4_MINUTES 14 // 245760 mili giây
#define BEACON_ORDER_2_MINUTES 13 // 122880 mili giây
#define BEACON_ORDER_1_MINUTE 12 // 61440 mili giây
#define BEACON_ORDER_31_SECONDS 11 // 30720 mili giây
#define BEACON_ORDER_15_SECONDS 10 // 15360 MSec
#define BEACON_ORDER_7_5_SECONDS 9 // 7680 MSec
#define BEACON_ORDER_4_SECONDS 8 // 3840 MSec
#define BEACON_ORDER_2_SECONDS 7 // 1920 MSec
#define BEACON_ORDER_1_SECOND 6 // 960 MSec
#define BEACON_ORDER_480_MSEC 5
#define BEACON_ORDER_240_MSEC 4
#define BEACON_ORDER_120_MSEC 3
#define BEACON_ORDER_60_MSEC 2
#define BEACON_ORDER_30_MSEC 1
#define BEACON_ORDER_15_MSEC 0
5.Làm cách nào để đặt Thiết bị cuối vào trạng thái năng lượng thấp và cách đặt thời gian ngủ?
Sau khi bật POWER_SAVING trong định nghĩa macro ngăn xếp giao thức, rồi thao tác -DRFD_RCVC_ALWAYS_ON = FALSE trong tệp f8wConfig.cfg, thì Thiết bị cuối có thể nhập trạng thái ngủ.
Thời gian ngủ được xác định bởi lịch trình của hệ thống hoạt động OSAL. Mỗi thời gian ngủ dựa trên Thời gian chờ sự kiện mới nhất làm thời gian ngủ. Chi tiết được giải thích trong hàm hal_sleep ngăn xếp giao thức.
Thời gian chờ này chủ yếu được chia thành hai loại, một là thời gian chờ của các sự kiện lớp ứng dụng và loại còn lại là thời gian chờ của các sự kiện lớp MAC.
1) Thời gian chờ của lớp ứng dụng được lấy bởi osal_next_timeout (); trong chức năng của osal_pwrmgr_powerconserve (void).
2) Thời gian chờ của lớp MAC được MAC_PwrNextTimeout (); trong chức năng của halSleep (uint16 osal_timeout).
6. Có gì mới trong ngăn xếp giao thức ZigBee 3.0?
Vui lòng tham khảo liên kết dưới đây, giới thiệu các bổ sung của ngăn xếp giao thức ZigBee 3.0 so với ZigBee Home Automation / ZigBee Light Link trước đó.
https://www.ti.com/lit/an/swra615a/swra615a.pdf?ts=1627190581608
7. Giải thích chi tiết về chuyển đổi trạng thái của thiết bị đầu cuối trong ngăn xếp giao thức TI ZigBee.
8. Sự khác biệt giữa OAD và OTA trong ngăn xếp giao thức TI.
OAD là Tải xuống Trực tuyến, và OTA là Trực tuyến. Các chức năng của hai triển khai này giống nhau và cả hai đều có thể được gọi là nâng cấp từ xa cho chương trình. Trong tiêu chuẩn giao thức ZigBee ban đầu, không có tiêu chuẩn nào cho việc nâng cấp qua mạng của chương trình nút, nhưng nhiều khách hàng có yêu cầu đối với nó. Do đó, TI đã phát triển một tập hợp các ngăn xếp giao thức để nâng cấp chương trình qua mạng và đặt tên là OAD. ZigBee Alliance nhận ra rằng nhu cầu ngày càng tăng, sau đó họ cũng chỉ định một tiêu chuẩn cho việc nâng cấp qua mạng và đặt tên là OTA, cũng đề cập đến việc triển khai TI OAD và thực hiện các sửa đổi có liên quan. Do đó, trong ngăn xếp giao thức TI ban đầu, nâng cấp qua mạng được gọi là OAD, và sau này trong Liên minh ZigBee, nó được gọi là OTA.
9. Nếu bộ dao động tinh thể 32K không được hàn trong một thiết bị công suất không thấp, làm thế nào để sửa đổi ngăn xếp giao thức Z-Stack?
Trong ngăn xếp giao thức Z-Stack, liệu bộ dao động tinh thể đã sử dụng có ổn định hay không sẽ được kiểm tra trong quá trình khởi tạo. Nếu bộ dao động tinh thể 32K không được hàn, mã sau đây cần được sửa đổi. Ngăn xếp giao thức TI Z-Stack sử dụng bộ dao động tinh thể 32K theo mặc định.
Trong tệp hal_board_cfg.h, #define OSC32K_CRYSTAL_INSTALLED FALSE
10. Nếu một ứng dụng riêng cần được phát triển dựa trên mạng ZigBee Mesh, thì nên chọn ngăn xếp giao thức nào?
Nhiều người dùng, trong một số ứng dụng công nghiệp, chỉ muốn sử dụng các chức năng của mạng lưới ZigBee trong các hệ thống hoặc sản phẩm của riêng họ và không cần tuân theo các thông số kỹ thuật của lớp ứng dụng do ZigBee xác định. Đối với các yêu cầu ứng dụng như vậy, làm thế nào để chọn ngăn xếp giao thức TI thích hợp để phát triển sản phẩm? http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/132197.aspx
11.Khi sử dụng CC2630 / CC2650 ZigBee để phát triển, tôi có thể gỡ lỗi bằng điểm ngắt trong mã ngăn xếp Core không?
Đúng. Bạn phải tải xuống tệp tương ứng với mã điểm ngắt và mở trước, sau đó gỡ lỗi.
12. Điều phối viên Zigbee chọn kênh thích hợp để tạo mạng như thế nào?
Việc tạo mạng Zigbee phải được hoàn thành bởi một điều phối viên. Một mạng Zigbee chỉ có một người điều phối. Bộ điều phối Zigbee chủ yếu hoàn thành việc lựa chọn kênh mạng và tạo PANID khi tạo mạng. Có hai bước để chọn kênh.
1) Quét thụ động còn được gọi là Quét năng lượng. Quét thụ động có nghĩa là bộ điều phối bật bộ thu của nó, sau đó quét tuần tự trên danh sách kênh đã đặt trước đó. Sau khi quét sẽ thu được giá trị năng lượng của từng kênh. Năng lượng này chủ yếu đến từ các mạng Zigbee khác hoặc tín hiệu mạng không dây 2,4 GHz khác. Điều phối viên sẽ coi kênh có giá trị năng lượng cao hơn giá trị ngưỡng đặt trước là có nhiễu lớn hơn và loại bỏ kênh đó.
2) Quét hoạt động. Trong các kênh còn lại sau vòng quét đầu tiên, các Yêu cầu Báo hiệu được gửi theo trình tự. Nếu gói dữ liệu Beacon tương ứng được nhận, nó được coi là có các thiết bị Zigbee khác trong kênh. Cuối cùng, điều phối viên sẽ chọn một PANID không có các mạng Zigbee khác hoặc kênh có ít mạng Zigbee nhất để thiết lập mạng riêng của mình và đặt một PANID không xung đột.
13.Làm cách nào để xóa giao diện người dùng và sử dụng ngăn xếp giao thức TI Zigbee 3.0 để nhanh chóng vào chế độ phát triển sản phẩm?
https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/146528
Làm thế nào để tối ưu hóa Flash và RAM của CC2530?
http://www.ti.com/lit/wp/swra635/swra635.pdf
CC2650, CC2538, CC2652R, CC2630, Z-Stack, CC2530