Như đã trình bày ở chương 3, để thực hiện việc điều khiển các thiết bị từ máy tính ta cần sử dụng một thiết bị trung gian. Trong phần thực nghiệm này, chúng tôi đã sử dụng một thiết bị( tạm gọi là thiết bị điều khiển trung gian - ElecDeviceControler) có cấu tạo chính như sau :
Bộ vi xử lý sử dụng chip PIC18F425
Một khối kết nối:sử dụng các thiết bị cho phép giao tiếp với máy tính thông qua cổng COM xử dụng IC max 323
Một khối công suất: sử dụng IC ULN2004A/SO để điều khiển một bộ rơ le sử dụng cho việc đóng mở các mạch điện.
Với những thiết bị trên cùng bài toán đặt ra là phải thực hiện việc điều khiển từ máy tính, nên trong phần thực nghiệm này, chúng tôi có đưa ra một giao thức đơn giản
để thực hiện các giao tiếp truyền thông giữa máy tính và thiết bị điều khiển trung gian. Giao thức trên về cơ bản gồm các đặc điểm sau:
Các tín hiệu điều khiển được mã hóa dưới dạng 1 gói 2 bytes được biểu diễn trong hệ cơ sô 16 là A0XY. Trong đó:
o A0: là mã hóa ID của thiết bị điều khiển trung gian( giúp phân biệt nó với các thiết bị khác căm vào máy tính)
o X: là mã hóa ID của các thiết bị cần điều khiển. Theo đó với 4 bit này ta có thể mã hóa được tối đa 16 thiết bị.
o Y: là mã hóa các lệnh có thể thực hiện trên thiết bị. Cũng theo đó ta có thể có tối đa 16 lệnh. Con số 16 này có thể là bé tuy nhiên với bài toán đơn giản của chúng ta nó là phù hợp.
Chú ý: Ngoài mô ta ở trên, sẽ còn có một số gói đặc biệt sử dụng để kiểm tra trạng thái của các thành phần trong hệ thống.
Giao thức biên nhận được thực một cách đơn giản đó là mỗi khi nhận đủ một gói, nếu việc điều khiển thực hiện thành công, thiết bị điều khiển trung gian sẽ gửi lại đúng gói vừa nhần được về máy tính như một gói biên nhận.
Việc kiểm soát lỗi trên đường truyền được thực hiện bằng cách sau. Do dữ liệu được truyền trên đường truyền theo gói một byte một, mà mỗi gói dữ liệu của ta cần 2 byte nên cần có cách để kiểm tra xem có nhận đúng gói cần nhận không. Để thực hiện việc kiểm tra này hệ thống thực hiện như sau: sau khi nhận byte thứ nhất, nếu byte thứ hai không đến trong khoảng 10 mili giây kế tiếp thì coi như gói đó bị lỗi và hủy; quy ước là không truyền 2 gói dữ liệu liên tiếp trong khoảng 100 mili giây nên nếu gói nào đến trong khoảng 100 mili giây kể từ khi nhận gói trước đó cũng bị hủy bỏ, coi như lỗi.