Lập trình Thiết bị Kiểm tra Mạng của Riêng Bạn

Mark Harris
|  Created: January 18, 2024  |  Updated: February 9, 2024
Lập trình Thiết bị Kiểm tra Mạng của Riêng Bạn

Giới thiệu

Nếu bạn từng dành thời gian để kiểm tra thủ công các lô linh kiện, bạn sẽ biết quá trình này mất thời gian và công sức như thế nào. Mỗi bài kiểm tra tuân theo những bước cơ bản giống nhau được lặp lại cho mỗi món đồ bạn đang kiểm tra. Bạn cũng sẽ hiểu được sức mạnh của việc sử dụng thiết bị kiểm tra mà bạn có thể lập trình để thực hiện những bước này cho bạn, vì vậy chỉ cần thiết lập mọi thứ và kết nối mọi thứ lại với nhau để bạn có thể nhấn nút để thực hiện một bài kiểm tra. Bạn có thể tiết kiệm thêm nhiều thời gian bằng cách tự động hóa cấu hình tất cả thiết bị kiểm tra của mình chỉ với một cú nhấp chuột máy tính.

Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn tạo ra thiết bị kiểm tra riêng biệt để thêm vào bộ kiểm tra tự động của mình? Hướng dẫn từng bước này sẽ chỉ cho bạn cách viết mã cho phép bạn cấu hình thiết bị kiểm tra mạng của mình từ sự thoải mái của máy tính của bạn.

Tự động hóa mạng loại bỏ nhu cầu phải thiết lập từng thiết bị kiểm tra riêng biệt và tiết kiệm thời gian nếu bạn cần lặp lại cùng một bài kiểm tra trong tương lai. Điểm cộng là việc khôi phục cài đặt sau bất kỳ cúp điện nào hoặc tắt thiết bị không mong muốn là nhanh chóng và đơn giản.

Giới thiệu về SCPI

Nếu bạn không quen với việc kết nối thiết bị kiểm tra mạng, bạn cần biết về Standard Commands for Programmable Instruments (SCPI). Trước đây, Hewlett-Packard đã đưa ra khái niệm về một bus giao diện tiêu chuẩn sẽ cho phép bất kỳ máy tính nào với giao diện phù hợp kết nối với bất kỳ thiết bị kiểm tra nào. Tiêu chuẩn HPIB này sau đó được biết đến với tên là General Purpose Interface Bus (GPIB) với chỉ định tiêu chuẩn IEEE 488 của riêng mình. Sự chuẩn hóa này cho phép mỗi thiết bị kiểm tra mạng phản hồi lệnh từ máy tính để thực hiện các chức năng như xuất tín hiệu hoặc thực hiện đo lường.

SCPI mở rộng nguyên tắc chuẩn hóa mạng của thiết bị kiểm tra bằng cách thêm một lớp bổ sung cho tiêu chuẩn IEEE-488 để điều chỉnh các lệnh máy tính mà thiết bị kiểm tra có thể hiểu. Cách tiếp cận này giờ đây có nghĩa là một máy hiện sóng do HP sản xuất sẽ phản hồi các lệnh giống như một máy hiện sóng do Keysight sản xuất. Trước khi chuẩn hóa các lệnh, thường các mô hình khác nhau do cùng một nhà sản xuất sản xuất sẽ phản ứng với các lệnh khác nhau. Sự chuẩn hóa này có nghĩa là chương trình điều khiển thiết bị kiểm tra trên máy tính sẽ làm việc với bất kỳ thương hiệu và mô hình thiết bị phòng thí nghiệm nào, vì vậy việc thay đổi một nguồn điện bàn mạng, chẳng hạn, sang một mô hình tốt hơn sẽ không yêu cầu thay đổi chương trình điều khiển.

Sự chuẩn hóa này cũng có nghĩa là bất kỳ mã nào được viết cho hướng dẫn từng bước này sẽ hoạt động trong bất kỳ phòng thí nghiệm nào nếu bạn có cùng loại thiết bị kiểm tra mạng được kết nối với một máy tính phù hợp.

Giới thiệu về SCPI

Các lệnh SPCI có dạng chuỗi ASCII đơn giản, dễ đọc và hiểu. Ví dụ, gửi lệnh “*RST” cho một thiết bị kiểm tra sẽ khởi động lại nó; gửi lệnh “*WAI” sẽ yêu cầu nó chờ đợi.

Các lệnh SPCI có thể chỉ đạo thiết bị kiểm tra thực hiện một hành động hoặc yêu cầu thông tin tùy thuộc vào định dạng của nó. Ví dụ, lệnh “TIM:ACQT 20ms” sẽ thay đổi thời gian thu thập của một oscilloscope thành 20ms, trong khi lệnh “TIM:ACQT?” sẽ khiến nó trả về thời gian thu thập hiện tại của nó.

Điểm quan trọng cần lưu ý là các lệnh không phân biệt chữ hoa chữ thường và hỗ trợ dạng viết tắt, vì vậy, ví dụ, “TRIG SOUR CH1” và “Trigger source Channel1” đều là các biến thể hợp lệ của cùng một lệnh. Bạn cũng có thể nối các lệnh lại với nhau, ví dụ, “TRIG SOUR CH1”, “TRIG LEVEL1 10” và “TRIG POL INV” có thể được viết là “TRIG:SOUR CH1;LEVEL1 10;POL INV” vì tất cả các lệnh đều áp dụng cho cùng một TRIG. Các lệnh này thiết lập kênh nguồn, mức của nó theo volt, và cực tính. Ví dụ này thiết lập mức kênh 1 thành 10V với cực tính đảo ngược. Bạn không cần phải chỉ định kích hoạt 1 vì điều này được giả định, nhưng bạn có thể sử dụng “TRIG1:” để tránh sự mơ hồ.

Dự Án Lập Trình

Video đi kèm bài viết này hướng dẫn cách tạo thiết bị kiểm tra mạng của riêng bạn sử dụng các lệnh SCPI. Điều này dựa trên một video trước đó hướng dẫn cách giao tiếp với thiết bị kiểm tra để tự động hóa.

Mục tiêu của bài tập này là để cho phép phần cứng kiểm tra tùy chỉnh phù hợp một cách liền mạch vào bất kỳ phần mềm kiểm tra hiện có nào có thể xử lý các lệnh SCPI, như những phần mềm sử dụng LAN eXtensions for Instrumentation (LXI) hoặc Virtual Instrument Software Architecture (VISA). Mục tiêu cuối cùng là phát triển một thiết bị kiểm tra tích hợp toàn diện bằng cách kết hợp một vi điều khiển vào phần cứng kiểm tra tự động.

Lập Trình Thiết Bị Kiểm Tra Mạng Của Riêng Bạn

Bảng phát triển Infineon XMC4700 Relax Kit, được thiết kế cho các ứng dụng công nghiệp, là trái tim của dự án. Bảng bao gồm một vi điều khiển với bộ nhớ tĩnh và động, đồng hồ, nguồn cung cấp, giao diện tiêu chuẩn, và các điều khiển cơ bản. Nó cũng bao gồm một kết nối ethernet trên bo mạch với địa chỉ kiểm soát truy cập phương tiện (MAC) cho mạng lưới.

Một lợi ích chính của cấu hình này là sự có sẵn của môi trường phát triển tích hợp Digital Application Virtual Engineer (DAVE) mà Infineon cung cấp. DAVE là một công cụ phát triển phần mềm và tạo mã dựa trên C cho các ứng dụng vi điều khiển. Nó cho phép đơn giản hóa quá trình lập trình, thuận tiện xử lý hầu hết các nhiệm vụ thiết lập để bạn có thể tập trung vào việc triển khai các lệnh SCPI.

Mã thử nghiệm mà chúng ta sẽ tạo ra sẽ đọc vị trí của một nút và điều khiển trạng thái của một đèn LED. Bài thử nghiệm đơn giản này sẽ cung cấp một ví dụ dễ hiểu và là điểm xuất phát tuyệt vời để khám phá thêm về sức mạnh và lợi ích của việc thử nghiệm tự động.

Hướng dẫn Lập trình Từng Bước

Thiết lập Dự án:

Lập trình Thiết bị Thử nghiệm Mạng của Riêng Bạn Hướng dẫn Từng Bước

Khi sử dụng công cụ DAVE cho một dự án mới, bước đầu tiên là tạo một tệp dự án mới bằng cách sử dụng chuỗi lệnh “File -> New -> DAVE Project”. Hành động này sẽ mở ra một cửa sổ mới nơi bạn có thể chọn tùy chọn “DAVE CE Project” và đặt cho nó một tên phù hợp.

Lập trình Thiết bị Thử nghiệm Mạng của Riêng Bạn Hướng dẫn Từng Bước

Sau đó, bạn sẽ cần chọn phần cứng mục tiêu; trong trường hợp này là bộ kit XMC4700 Relax.

Trừ khi dự án của bạn sẽ bị hạn chế về tài nguyên, luôn là một thực hành tốt khi sử dụng thư viện tiêu chuẩn newlib đầy đủ tính năng thay vì lựa chọn kích thước nano.

Lập trình Thiết bị Thử nghiệm Mạng của Riêng Bạn Hướng dẫn Từng Bước

Bước tiếp theo là thiết lập các thiết bị ngoại vi cho dự án bằng cách sử dụng lệnh “DAVE -> Add New APP”.

Lập trình Thiết bị Thử nghiệm Mạng của Riêng Bạn Hướng dẫn Từng Bước

Cấu hình đầu tiên cần thiết lập là kết nối mạng, và bạn làm điều này với lệnh “Ethernet -> ETH_LWIP”, thêm một giao thức internet nhẹ (IP) vào dự án để xử lý giao diện này.

Lập trình Thiết bị Thử nghiệm Mạng của Riêng Bạn Hướng dẫn Từng Bước

Bạn cũng cần thêm các giao diện vào/ra (IO) cho thiết bị thử nghiệm, trong ví dụ này là nút và đèn báo LED. Cả hai đều là thành phần rời rạc, vì vậy bạn phải thêm hai “DIGITAL_IO apps” dưới tùy chọn lệnh Hệ thống, một cho mỗi thành phần.

Kiểm tra

Việc đổi tên các ứng dụng IO để xác định chức năng của chúng trong tên là một thực hành tốt giúp cuộc sống dễ dàng hơn và tránh việc truy cập nhầm ứng dụng. Lỗi này có thể khó phát hiện khi cố gắng gỡ lỗi một chương trình kiểm tra đang hoạt động không như mong đợi.

Kiểm thử

Bạn cũng cần cấu hình ngăn xếp IP cho kết nối Ethernet bằng cách nhấp chuột phải vào “ETH_LWIP App” và chọn “Configure APP Instance”. Bạn sẽ thấy rằng bộ kit XMC4700 Relax đã được cấu hình sẵn, giúp tiết kiệm thời gian. Bạn sẽ cần thay đổi địa chỉ IP tĩnh trên trang cài đặt IP để phù hợp với subnet của máy tính bạn đang sử dụng cho việc kiểm tra tự động. Ngoài ra, giao thức datagram người dùng (UDP) không được yêu cầu trong ví dụ này nên bạn có thể vô hiệu hóa điều này trong tab cài đặt giao thức.

Kiểm thử

Cuối cùng, bạn cần cung cấp sự ánh xạ giữa cài đặt chân APP và phần cứng vi điều khiển bằng cách sử dụng tùy chọn phân bổ chân thủ công cho từng thành phần. Để cấu hình nút nhấn rời, bạn nhấp chuột phải vào nút và chọn lệnh “Manual Pin Allocator”.

Kiểm thử

Sau đó, bạn có thể chọn số chân phù hợp cho nút trên Relax Kit từ menu thả xuống, nơi cung cấp nhãn một cách tiện lợi để làm cho việc này trở nên đơn giản. Việc cấu hình LED và kết nối Ethernet cũng tuân theo cùng một quy trình. Bạn sẽ thấy rằng chức năng phân bổ chân làm đơn giản hóa quy trình này bằng cách chỉ cho phép bạn chọn các chân có chức năng cần thiết. Công cụ tự động cung cấp tất cả nhãn của bộ kit XMC4700 Relax để làm cho việc này trở nên đơn giản.

Những bước này hoàn thành việc thiết lập cho dự án kiểm tra tự động của bạn, và bạn giờ đây đã sẵn sàng để viết mã kiểm thử.

Lập trình Ứng dụng Dự án

Kiểm tra

Bạn có thể tạo mã cho các Ứng dụng chỉ bằng cách nhấp vào nút “Generate Code” trên thanh công cụ DAVE và sau đó ngồi lại và chờ đợi cho đến khi quá trình hoàn tất.

Trước khi lập trình một cách nghiêm túc, một bước được khuyến nghị là chuyển bảng điều khiển từ vi điều khiển sang máy tính, cung cấp quyền truy cập `printf` dễ dàng. Điều này sẽ cho phép bạn định dạng và in dữ liệu để việc viết và gỡ lỗi mã trở nên nhanh chóng và dễ dàng hơn. Bạn có thể làm điều này bằng cách kích hoạt “GDB Semi-Hosting” trong cài đặt cấu hình. Bạn có thể thực hiện điều này bằng cách điều hướng đến “Project Properties”, tiếp tục đến “C/C++ Build”, và sau đó chọn “Settings”.

Kiểm tra

Dưới “ARM-GCC, C Linker, Miscellaneous”, bạn sẽ cần thêm “–specs=rdimon.specs” vào cờ “Khác”. Bước này tích hợp cấu hình semi-hosting cho trình liên kết.

Kiểm thử

Sau đó, bạn có thể chuyển đến phần “ARM-GCC C Compiler, Preprocessor” và thêm một biểu tượng mới được định nghĩa là “XMC_DEBUG_ENABLE”. Cài đặt này đảm bảo việc chuyển hướng bảng điều khiển trong cấu hình xây dựng gỡ lỗi.

Kiểm tra

Bạn sẽ cần trong cài đặt dự án để bỏ chọn hộp kiểm cung cấp “default newlib system calls” dưới cài đặt “ARM-GCC C Linker, General”. Nếu bạn để nó được chọn, bạn sẽ thấy rằng nó làm gián đoạn khởi tạo xử lý giám sát và gây ra lỗi khi xây dựng.

Tiếp theo, bạn cần khởi tạo giám sát, mà bạn có thể làm bằng cách thêm “extern void initialise_monitor_handles(void);” vào đầu mã của bạn. Hàm này cần được gọi sau lời gọi DAVE_Init();.

Lưu ý rằng cách viết “initialise” là biến thể tiếng Anh của Anh vì cơ sở ARM nằm ở Cambridge, Anh. Sử dụng cách viết của Mỹ sẽ gây ra lỗi có thể khó giải quyết nếu bạn không nhận ra sự khác biệt tinh tế trong cách viết.

Lập Trình Mạng Dự Án

Bước đầu tiên để làm cho mạng Ethernet hoạt động là kích hoạt ngăn xếp IP nhẹ để kiểm tra tin nhắn mới thường xuyên. Bạn có thể làm điều này bằng cách thêm một lời gọi đến hàm “sys_check_timeouts();” trong vòng lặp while vô hạn của bạn chạy sau khi khởi tạo hoàn tất.

Chức năng này sẽ cần được gỡ lỗi để có thể chạy trên vi điều khiển. Bạn có thể làm điều này bằng cách tạo một cấu hình gỡ lỗi mới. Khuyến nghị là tắt tùy chọn “Set breakpoint at: main” để cho phép mã chạy ngay khi vi điều khiển bắt đầu hoạt động. Chọn tùy chọn gỡ lỗi sẽ tải mã mới của bạn vào vi điều khiển.

Kiểm tra

Bạn có thể xác nhận mã đang chạy bằng cách mở một cửa sổ console Windows trên máy tính và ping địa chỉ IP của bảng phát triển, trong ví dụ này, là bộ kit XMC4700 Relax. Bảng phát triển sẽ phản hồi mỗi lần ping, xác nhận rằng bảng đang hoạt động và kết nối mạng đang làm việc.

Mã ngăn xếp IP nhẹ sẽ tự động xử lý các chức năng của Giao thức Điều khiển Tin nhắn Internet (ICMP). Tuy nhiên, bạn phải tạo mã để xử lý các kết nối và dữ liệu Giao thức Điều khiển Truyền (TCP) đến. Bạn có thể làm điều này bằng cách sử dụng các câu lệnh mã ngăn xếp IP nhẹ tiêu chuẩn không cụ thể cho vi điều khiển.

Bây giờ bạn đã hoàn thành cấu hình kết nối mạng, bạn có thể thiết lập khối điều khiển giao thức để lắng nghe trên cổng 5025, mà mã SCPI sử dụng cho giao tiếp. Bạn nên cấu hình ngăn xếp IP nhẹ để ủy quyền tất cả các kết nối mới cho một chức năng gọi là client_accept mà bạn sẽ cần mở rộng để xử lý khách hàng mới. Tất cả dữ liệu nhận được sẽ cần được chuyển hướng đến một chức năng xử lý riêng biệt sẽ cũng xuất một thông điệp gỡ lỗi để chỉ ra việc nhận được một kết nối mới.

Triển khai phương thức client_recv sẽ sao chép dữ liệu nhận được vào một bộ đệm để xử lý. Chức năng này cũng nên kiểm tra các kết nối không có dữ liệu, điều này chỉ ra rằng máy chủ từ xa đã đóng kết nối. Đối với tình huống này, mã có thể thực hiện các hành động dọn dẹp để loại bỏ bất kỳ dấu vết không mong muốn nào để lại bởi kết nối đã đóng.

Biên dịch mã sẽ tạo ra một bản build chức năng nếu không có lỗi mã hóa nào cần gỡ lỗi.

Lập trình Dự án IO

Bước tiếp theo là cấu hình “Ứng dụng IO Kỹ thuật số” để thực hiện các hoạt động yêu cầu của chúng.

Kiểm thử

Nhấp chuột phải vào từng Ứng dụng và chọn tùy chọn “Configure App Instance”. Cài đặt mặc định cho các thành phần IO là đầu vào ba trạng thái, hoàn hảo cho nút bấm. Tuy nhiên, đối với LED, bạn sẽ cần thay đổi cài đặt thành “Input/Output” với khả năng lái mạnh và cạnh mềm. Cấu hình lái mạnh này đảm bảo rằng bảng mạch sẽ sản xuất đủ dòng lái để chiếu sáng LED. Cấu hình cạnh mềm ám chỉ tốc độ chuyển đổi cạnh của chân. Một cạnh mềm giảm bớt bất kỳ hiệu ứng chuyển tiếp nào trên mạng lưới phân phối điện và giảm nguy cơ ảnh hưởng tiêu cực đến tuân thủ điện từ. Sử dụng tùy chọn này cho đầu ra rời rạc là một thực hành tốt trừ khi bạn cần một tín hiệu với tốc độ cạnh nanogiây.

Tái tạo mã cập nhật sẽ thêm những thay đổi mới vào bản build chức năng. Điều quan trọng là phải nhớ luôn tái tạo mã sau khi thực hiện bất kỳ thay đổi nào đối với DAVE App.

Lập trình Dự án SCPI

Với việc hoàn thành các chức năng cấu hình và khởi tạo, việc lập trình dự án cuối cùng có thể chuyển sang triển khai các lệnh SCPI cho việc kiểm tra. Không cần thiết phải triển khai các lệnh SCPI từ đầu; một thư viện SCPI-Parser tuyệt vời của Jan Breuer có sẵn trên GitHub làm điểm xuất phát.

Bạn có thể tận dụng nguồn lực này bằng cách giải nén thư mục libscpi vào thư mục Libraries của dự án. Sau đó giải nén các thư mục scpi-def từ “examples -> common” vào thư mục dự án của bạn. Bước này nhập thư viện SCPI-Parser và cung cấp một điểm xuất phát tốt để triển khai dự án của bạn.

Bạn sẽ cần xóa thư mục test và makefile trong thư viện libscpi trong môi trường phát triển tích hợp của DAVE, vì chúng sẽ không tương thích với thư viện ARM-GCC đang sử dụng.

Kiểm tra

Sau đó, quay lại cửa sổ thuộc tính dự án dưới “Build, Settings, Compiler, Directories” và thêm một tham chiếu đến thư mục includes của libscpi.

Bạn cũng cần mở tệp scpi-def.c và thêm một câu lệnh include cho “dave.h” để liên kết các chức năng IO của bạn với tệp scpi-def.

Như một lưu ý bên lề, tệp này bao gồm một triển khai demo tuyệt vời của một Đồng hồ đo điện tử và các chức năng cho việc kiểm tra tự động. Thật không may, các chức năng này không tương thích với trình biên dịch ARM được sử dụng cho ví dụ này, và do đó cần được loại bỏ. Tuy nhiên, nếu bạn cần triển khai các chức năng của riêng mình trong tương lai, bạn có thể tham khảo lại các tệp gốc để tham khảo.

Khi chỉnh sửa tệp, xóa tất cả các chức năng DMM và kiểm tra trong khối cấu hình lệnh nhưng giữ lại mã cho lệnh TST và tất cả các câu lệnh tiếp theo, cùng với các lệnh SCPI tiêu chuẩn mà thư viện sẽ xử lý.

Bạn có thể định nghĩa thông tin nhận dạng cho bộ thiết lập kiểm tra trong tệp “scpi-def.h”, vì vậy sử dụng lệnh SCPI *IDN sẽ trả về thông tin hữu ích đáp ứng mọi yêu cầu nhận dạng.

Bạn có thể thiết lập các lệnh SCPI trong tệp “main.c” của dự án. Bạn sẽ cần thêm ngữ cảnh SCPI vào hàm chính sử dụng thuộc tính user_context để truyền một tham chiếu đến khối điều khiển giao thức Lightweight IP cho phép khởi tạo thư viện SCPI. Sau đó bạn cần thêm các hàm của mình để kích hoạt libscpi giao tiếp qua kết nối mạng. Trong ví dụ này, các hàm sau cần được định nghĩa:

  • Hàm “SCPI_Write” cho phép libscpi gửi dữ liệu qua kết nối mạng.

  • Hàm “SCPI_Flush” thông báo cho ngăn xếp Lightweight IP gửi bất kỳ dữ liệu nào trong bộ đệm ngay lập tức.

  • Hàm “SCPI_Error” cung cấp một phương tiện để xử lý lỗi SCPI. Đối với ví dụ cơ bản này, bạn có thể bỏ qua điều này với một lời gọi đơn giản đến hàm printf.

  • Hàm “SCPI_Control” là một tính năng tùy chọn cho phép bạn viết vào kênh điều khiển trên cổng TCP 5026, mà bạn sẽ không cần cho ví dụ này.

  • Hàm “SCPI_Reset” được gọi đáp ứng với việc nhận một lệnh đặt lại, khôi phục tất cả các thiết bị kiểm tra về cài đặt mặc định của chúng. Không có thiết bị kiểm tra nào được kết nối cho ví dụ cơ bản này nên bạn có thể bỏ qua điều này với một lời gọi đơn giản đến hàm printf.

Kiểm tra

Cuối cùng, user_context cần được thiết lập cho kết nối khách hàng mới khi thực hiện kết nối với ngăn xếp Lightweight IP. Điều này sẽ cho phép dữ liệu được truyền đến thư viện SCPI từ bộ đệm qua hàm client_recv đến “SCPI_Input” để được xử lý. Bạn cần lưu ý rằng cài đặt này sẽ không xử lý đồng thời nhiều kết nối nhưng đại diện cho cấu hình mạng thực hành tốt.

Biên dịch mã đã cập nhật và tải lên vi điều khiển sẽ dẫn đến một hệ thống kiểm tra không chỉ tiếp tục phản hồi với các ping từ Windows Console mà còn phản hồi với các lệnh SCPI.

Kiểm thử Mã SCPI Dự án

Dự án ví dụ này đã sử dụng ứng dụng Kiểm tra VISA của Rohde & Schwarz để kiểm thử các lệnh SCPI.

Kiểm tra

Sau khi kết nối ứng dụng với thiết bị kiểm tra, bước kiểm tra đầu tiên là phát ra yêu cầu xác định danh tính (IDN?). Đây là bước đầu tiên được khuyến nghị, và lệnh này hoàn toàn được xử lý bởi thư viện SCPI, đảm bảo rằng giao tiếp hoạt động và bạn đã thiết lập thư viện một cách chính xác. Điều này có nghĩa là việc giải quyết bất kỳ vấn đề nào liên quan đến các bài kiểm tra yêu cầu phản hồi từ một thiết bị ngoại vi hoặc thiết bị kiểm tra có thể giả định rằng giao tiếp và thư viện không phải là nguyên nhân trong quá trình gỡ lỗi.

Kiểm tra các thiết bị ngoại vi yêu cầu thêm các mẫu mới vào mảng `scpi_commands` để triển khai các chức năng cần thiết. Các lời gọi đến hàm “printf” có thể được bao gồm để gỡ lỗi chức năng, cung cấp một phương pháp đơn giản để xác minh việc thực thi mã.

Kiểm tra

Trong ví dụ, mã đọc trạng thái của nút bằng cách sử dụng hàm “scpi_result_t IO_Btn“ trong ứng dụng DAVE đã được thiết lập trước cho trình xử lý nút với trạng thái được gửi bằng phản hồi “SCPI_ResultBool”. Giá trị trả về được đảo ngược vì nút này là một thành phần hoạt động ở mức thấp.

Kiểm tra

Hàm xử lý LED phân tích tham số trạng thái nút nhận được và thiết lập trạng thái LED phù hợp. Nếu không tồn tại tham số nào, thì không có hành động nào được thực hiện trong ví dụ này. Bước này sử dụng hàm “scpi_result_t IO_Led” để thực hiện chức năng của mình.

Với việc lập trình vi điều khiển, bạn có thể kiểm tra mã sử dụng tab Console trong công cụ DAVE. Điều này sẽ chứng minh việc nhận kết nối và hoạt động của lệnh yêu cầu danh tính.

Kiểm tra

Bạn có thể kiểm tra trạng thái của nút bằng cách gửi một truy vấn SCPI và kiểm tra chức năng bằng cách quan sát rằng trạng thái trả về thay đổi khi bạn nhấn nút.

Bạn có thể kiểm tra chức năng của LED đơn giản bằng cách gửi lệnh bật và tắt, quan sát trạng thái của ánh sáng và theo dõi trạng thái của bảng điều khiển.

Với cả nút và LED hoạt động chính xác, bạn có cơ sở của một thiết bị kết nối mạng hoàn toàn chức năng. Kết nối với một nền tảng tự động hóa kiểm tra hoặc viết mã kiểm tra của bạn sẽ cho phép bạn kiểm tra từ xa trạng thái của nút và điều khiển LED.

Kết luận

Bài viết này cho thấy việc sử dụng môi trường thử nghiệm tích hợp DAVE với một bảng phát triển sẽ cho phép bạn tạo và kết nối thiết bị thử nghiệm mạng của riêng mình để tích hợp với thiết bị trên bàn thí nghiệm và tự động hóa việc thử nghiệm trong phòng thí nghiệm.

Hướng dẫn từng bước này dành cho một minh chứng cơ bản về khái niệm, nhưng việc theo dõi các bước và có được một hệ thống thử nghiệm hoạt động sẽ trang bị cho bạn mọi thứ bạn cần để tạo ra các thiết bị thử nghiệm của riêng mình.

Chúng tôi sẽ sử dụng các nguyên tắc mà chúng tôi đã khám phá trong dự án này để tạo ra một thiết bị thử nghiệm thực tế trong tương lai gần, vì vậy hãy chú ý đón xem các phát triển tiếp theo.

About Author

About Author

Mark Harris is an engineer's engineer, with over 16 years of diverse experience within the electronics industry, varying from aerospace and defense contracts to small product startups, hobbies and everything in between. Before moving to the United Kingdom, Mark was employed by one of the largest research organizations in Canada; every day brought a different project or challenge involving electronics, mechanics, and software. He also publishes the most extensive open source database library of components for Altium Designer called the Celestial Database Library. Mark has an affinity for open-source hardware and software and the innovative problem-solving required for the day-to-day challenges such projects offer. Electronics are passion; watching a product go from an idea to reality and start interacting with the world is a never-ending source of enjoyment. 

You can contact Mark directly at: mark@originalcircuit.com

Tài liệu kỹ thuật liên quan

Back to Home
Thank you, you are now subscribed to updates.