1 Giới thiệu
Bộ vi điều khiển ngày càng được ứng dụng rộng rãi trong các thiết bị điều khiển tự động, hệ thống bảo vệ tích hợp-dựa trên bộ vi xử lý cho lưới điện và các lĩnh vực điều khiển tự động hóa công nghiệp khác, với độ phức tạp của các thiết bị này ngày càng tăng. Để giải quyết nhu cầu-thời gian thực, đa{3}}tác vụ của các mục tiêu phát triển, mô hình nhà phát triển-CPU đơn,{5}}đơn đang được thay thế bằng phương pháp cộng tác liên quan đến nhiều loại CPU khác nhau và nhiều nhà phát triển. Mô hình phát triển mới này đưa ra một thách thức quan trọng: tiêu chuẩn hóa phần cứng và phần mềm để trao đổi thông tin giữa các CPU trong quá trình triển khai. Tiêu chuẩn hóa này là mấu chốt cho việc áp dụng thành công mô hình mới này. Trong số nhiều phương thức giao tiếp, giao thức giao tiếp nối tiếp RS-485 dựa trên UART{9}}được áp dụng rộng rãi nhờ hệ thống dây đơn giản, độ tin cậy cao và khả năng hỗ trợ nhiều CPU. Về các giao thức truyền thông phần mềm, giao thức Modbus mang lại những lợi thế đáng kể cho người dùng do tính chất phổ quát và phần mềm sửa lỗi hoàn thiện của nó. Do đó, trong quá trình phát triển thiết bị bảo vệ toàn diện động cơ mới, phương thức giao tiếp nối tiếp RS-485 và giao thức truyền thông Modbus đã được áp dụng để đạt được việc trao đổi thông tin lệnh và dữ liệu giữa nhiều CPU. Để nâng cao hiệu quả và sự phối hợp của truyền thông nối tiếp, tác giả đã thực hiện nhiều biện pháp trong kiến trúc phần cứng và phần mềm của cơ chế truyền thông, đạt được kết quả xuất sắc. Trong giai đoạn gỡ lỗi giao tiếp hệ thống, một phương pháp đã được sử dụng trong đó mỗi mô-đun CPU lần đầu tiên giao tiếp với phần mềm kiểm tra Modbus tiêu chuẩn trước khi tiến hành gỡ lỗi kết nối lẫn nhau, cải thiện đáng kể hiệu quả phát triển hợp tác. Thực tiễn đã chứng minh rằng triết lý thiết kế này đơn giản hóa cấu trúc hệ thống đồng thời nâng cao đáng kể hiệu quả hoạt động và độ tin cậy của thiết bị.
2 tính năng của thiết bị bảo vệ toàn diện động cơ
Ngoài các chức năng bảo vệ toàn diện, thiết bị bảo vệ động cơ còn tích hợp khả năng đo lường, điều khiển từ xa và liên lạc. Màn hình LCD có ký tự Trung Quốc-lớn mang lại giao diện-thân thiện với người dùng. Bằng cách sử dụng giao tiếp CAN bus với máy chủ giám sát, nó tạo thành một hệ thống con trong hệ thống tự động hóa trạm biến áp phân tán, có thứ bậc. Để tối ưu hóa chức năng của hệ thống nhằm đáp ứng các yêu cầu-đa tác vụ, kiến trúc nhiều{6}}CPU đã được áp dụng. Một CPU xử lý việc lấy mẫu và truyền xung định kỳ; mô-đun CPU chính quản lý việc xử lý dữ liệu, tính toán thông số điện, chẩn đoán lỗi và vận hành chuyển mạch; trong khi CPU mô-đun bo mạch giám sát sự tương tác-của con người và tạo điều kiện giao tiếp với mô-đun bảo vệ chính và máy chủ giám sát. Mỗi mô-đun CPU có các nhiệm vụ được xác định rõ ràng, tạo điều kiện cho nhiều kỹ sư hợp tác phát triển trong quá trình triển khai. Giao tiếp nối tiếp liên kết CPU chính và CPU bảng điều khiển, cho phép tương tác giữa con người với máy và do đó chiếm một vị trí quan trọng. Thiết lập cơ chế giao tiếp hợp lý là cốt lõi của phần giao tiếp nối tiếp, quyết định hiệu quả phối hợp giao tiếp và gỡ lỗi trong các giai đoạn phát triển hệ thống sau này.
3 Giới thiệu về cơ chế truyền thông
3.1 Thiết kế phần cứng của cơ chế truyền thông
Cơ chế truyền thông được đề xuất cho hệ thống này nhằm đạt được hiệu quả và độ tin cậy cao. RS-485 sử dụng cấu trúc bán song công-, thường thực tế hơn so với cấu trúc song công hoàn toàn trong các ứng dụng hiện trường. Ở đây, một kết nối đơn giản hóa chỉ sử dụng hai đường tín hiệu được áp dụng. Sơ đồ mạch giao diện hệ thống được hiển thị trong Hình 1. Các mức logic TTL đầu ra bởi bộ vi điều khiển 8051 trên mô-đun bảo vệ chính được cách ly về mặt quang học, sau đó được chuyển đổi thành các mức RS-495 bằng chip MAX485. Sau đó, chip MAX485 trên mô-đun bảng điều khiển sẽ chuyển đổi các mức này trở lại mức logic TTL để vi điều khiển 8031 đọc. Về phía vi điều khiển 8051, chân P2.7 của cổng I/O song song 2 điều khiển chân cho phép đầu vào MAX RE và chân cho phép đầu ra DE. Như được hiển thị trong Hình 1, khi P2.7 xuất ra mức cao, RE được bật, cho phép phía vi điều khiển nhận dữ liệu. Khi P2.7 xuất ra mức thấp, DE được bật, cho phép phía vi điều khiển truyền dữ liệu. Cách tiếp cận này ngăn ngừa mất dữ liệu do chồng chéo do truyền mù, đảm bảo chất lượng liên lạc cao và tốc độ truyền đáng tin cậy.

3.2 Giao thức truyền thông
Để đảm bảo truyền dữ liệu chính xác giữa hai mô-đun trong thiết bị bảo vệ, cần phải có một bộ thông số kỹ thuật chi phối việc truyền thông tin-bao gồm chế độ truyền, định dạng dữ liệu và nội dung-. Điều này tạo thành giao thức hoặc giao thức truyền thông. Nếu không có sẵn phần mềm gỡ lỗi hoàn thiện và sẵn có, mô-đun CPU chính về cơ bản hoạt động như một hộp đen, dẫn đến nhiều thách thức-khó-vượt qua trong quá trình thử nghiệm tích hợp hệ thống. Do đó, giao thức truyền thông Modbus được áp dụng rộng rãi đã được lựa chọn và đơn giản hóa để phù hợp với yêu cầu cụ thể của thiết bị, cho phép giao tiếp giữa các mô-đun thành công với hiệu quả đã được chứng minh. Modbus sử dụng mô hình giao tiếp phụ-chính. Master trước tiên sẽ gửi lệnh yêu cầu liên lạc tới Slave. Sau đó, máy phụ sẽ phản hồi lại máy chủ bằng dữ liệu dựa trên mã chức năng trong lệnh yêu cầu. Mỗi nô lệ sở hữu một địa chỉ duy nhất. Cả khung yêu cầu do master gửi và khung phản hồi do Slave gửi đều bắt đầu bằng địa chỉ của Slave. Slave chỉ đọc các lệnh được gửi đến chính nó và bỏ qua các tin nhắn bắt đầu bằng các địa chỉ Slave khác. Chức năng này được triển khai bằng Chế độ 2 hoặc Chế độ 3 của cổng nối tiếp 8051. Mô hình giao tiếp câu hỏi{19}}và{20}}câu trả lời này nâng cao đáng kể độ chính xác của giao tiếp. Chế độ truyền RTU của Modbus được áp dụng trong thiết bị này.
4 biện pháp nâng cao độ tin cậy trong truyền thông
Hai byte cuối cùng của thông báo Modbus đóng vai trò là byte tổng kiểm tra. Giao tiếp RTU sử dụng kiểm tra dự phòng theo chu kỳ CRC-16 để phát hiện lỗi. Cơ chế mã hóa/giải mã của nó tương đối đơn giản với tỷ lệ lỗi thấp, có thể đạt được thông qua các phương pháp tính toán hoặc lập trình. Một số cách tiếp cận được nêu dưới đây:
4.1 Thuật toán cơ bản (Tính toán thủ công)
Lấy CRC16-CCITT làm ví dụ: tổng kiểm tra CRC là 16 bit và đa thức tạo ra là 17 bit. Giả sử luồng dữ liệu là 4 byte: BYTE, BYTE, BYTE, BYTE[0];
Dịch chuyển luồng dữ liệu sang trái 16 bit, mở rộng nó một cách hiệu quả theo hệ số 256×256. Sau đó, thực hiện phép chia cho đa thức sinh 0x11021 bằng cách sử dụng phép chia không{5}}mượn (tương đương với XOR theo bit). Phần còn lại thu được là tổng kiểm tra CRC. Luồng dữ liệu được truyền bao gồm 6 byte: BYTE, BYTE, BYTE, BYTE[0], CRC, CRC[0].
4.2 Thuật toán máy tính 1 (Thuật toán loại bit-)
1) Đặt 16 bit trên (BYTE, BYTE) của luồng dữ liệu mở rộng (6 byte) vào thanh ghi 16 bit;
2) Nếu bit có trọng số lớn nhất của thanh ghi là 1, dịch chuyển thanh ghi sang trái một bit (lấy bit có trọng số nhỏ nhất từ byte tiếp theo), sau đó thực hiện thao tác XOR với dạng đơn giản của đa thức tạo; mặt khác, chỉ cần dịch chuyển thanh ghi sang trái một bit (lấy bit có trọng số nhỏ nhất từ byte tiếp theo);
3) Lặp lại bước 2 cho đến khi toàn bộ luồng dữ liệu (6 byte) được chuyển vào thanh ghi;
4) Giá trị trong thanh ghi là CRC tổng kiểm tra CRC, CRC[0].
4.3 Thuật toán máy tính 2 (Thuật toán loại byte-) (256^n biểu thị 256 được nâng lên lũy thừa của n)
Biểu thị luồng dữ liệu có thứ tự byte-dưới dạng đa thức toán học. Đặt luồng dữ liệu là BYTE[n] BYTE[n-1] BYTE[n-2] ... BYTE[0] được biểu diễn dưới dạng biểu thức toán học
BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0], trong đó "+" biểu thị phép toán XOR. Đặt đa thức tạo là G17 (17-bit), sau đó mã CRC là CRC16.
CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2 / G17
Điều này liên quan đến việc dịch chuyển luồng dữ liệu sang trái 16 bit và sau đó chia cho đa thức tạo G17.
Đạo hàm cho thấy mã kiểm tra CRC cho BYTE[n-1] bằng kết quả XOR của 8 bit trên của mã kiểm tra CRC của byte trước Y[n] (YH8[n]) và byte hiện tại BYTE[n-1].
Thuật toán loại byte{0}}như sau:
1) Khởi tạo nhóm thanh ghi CRC thành tất cả "0" (0x0000).
2) Dịch chuyển nhóm thanh ghi CRC sang trái 8 bit và lưu nó vào nhóm thanh ghi CRC.
3) Thực hiện thao tác XOR giữa 8 bit cao của nhóm thanh ghi CRC ban đầu (dịch chuyển 8 bit sang phải) và byte dữ liệu để lấy chỉ mục trỏ đến bảng giá trị.
4) Thực hiện thao tác XOR giữa giá trị bảng được chỉ mục trỏ đến và nhóm thanh ghi CRC.
5) Tăng con trỏ dữ liệu. Nếu quá trình xử lý dữ liệu chưa hoàn tất, hãy lặp lại bước 2).
6) Lấy CRC.
5 biện pháp nâng cao hiệu quả truyền thông
5.1 Nhiệm vụ nhận và truyền thông tin riêng biệt
Bộ vi điều khiển 8051 có thể truyền và nhận dữ liệu qua cổng nối tiếp bằng cách sử dụng các ngắt. Bộ điều khiển cổng nối tiếp SCON hỗ trợ khởi tạo và đánh địa chỉ bit. Khi xảy ra yêu cầu ngắt cổng nối tiếp, hai bit thấp hơn của SCON sẽ chốt các ngắt truyền và nhận. Khi CPU ghi dữ liệu hoặc một ký tự vào bộ đệm truyền SUBF của cổng nối tiếp (lệnh: MOV SUBF, A), bộ phát bắt đầu gửi. Sau khi hoàn thành một khung dữ liệu, phần cứng đặt cờ TI thành "1", cho biết cổng nối tiếp đang yêu cầu CPU ngắt để gửi khung dữ liệu tiếp theo. Tương tự, nếu bộ thu cổng nối tiếp được bật để nhận, khi nhận được khung dữ liệu, cờ RI được đặt thành 1, cho biết cổng nối tiếp đang yêu cầu CPU ngắt để đọc dữ liệu từ bộ đệm dữ liệu nhận.
5.2 Giảm thời lượng ngắt
Do nhiều ngắt được sử dụng trong thiết kế kiến trúc phần mềm, để đảm bảo hoạt động chương trình đáng tin cậy và giảm thiểu xác suất xung đột giữa các tác vụ khác nhau, việc triển khai phần mềm nên cố gắng hợp lý hóa các tác vụ của các ngắt khác nhau và rút ngắn thời gian thực hiện của chúng. Trong chương trình con ngắt giao tiếp, thực hiện các tác vụ thiết yếu khi vào ngắt, chẳng hạn như: xóa các bit trạng thái tương ứng trong thanh ghi điều khiển cổng nối tiếp, đọc các ký tự nhận được hoặc ghi các ký tự được truyền từ/đến bộ đệm, tăng số lượng ký tự được nhận hoặc được truyền, v.v. Sau đó thoát khỏi ngắt ngay lập tức. Các tác vụ khác, chẳng hạn như xác thực khung, phản hồi các lệnh khung đã nhận (đo từ xa/điều khiển từ xa) và chuẩn bị khung truyền, phải được xử lý trong chương trình chính.
5.3 Phát hiện kết thúc khung hiệu quả để ngăn chặn tình trạng trì trệ truyền thông
Việc sử dụng bộ hẹn giờ phần mềm chuyên dụng để phát hiện phần cuối của khung nhận được sẽ ngăn tác vụ liên lạc bị kéo dài nếu nhận khung không đầy đủ, từ đó đảm bảo nhận kịp thời các khung tiếp theo. Vì khoảng thời gian giữa các byte trong một khung ngắn hơn nhiều so với khoảng thời gian từ khung hình-đến-khung hình nên bộ hẹn giờ phần mềm sẽ bắt đầu mỗi khi nhận được một byte mới. Đồng hồ hẹn giờ được đặt ở khoảng thời gian khung hình tối thiểu-đến-khung hình. Khoảng thời gian này thay đổi với tốc độ truyền khác nhau. Nếu byte tiếp theo được nhận trước khi hết thời gian đặt trước, điều đó cho biết khung hình chưa hoàn thành và bộ hẹn giờ sẽ khởi động lại. Nếu bộ đếm thời gian đếm ngược thành công đến thời gian đặt trước, nó sẽ kích hoạt số ngắt tương ứng. Trong chương trình con ngắt hẹn giờ, byte cờ kết thúc khung được đặt, biểu thị quá trình nhận khung đã hoàn tất. Sau khi chương trình chính phát hiện quá trình nhận khung hoàn tất, nó sẽ xác nhận tính toàn vẹn của khung bằng cách xác minh địa chỉ phụ và byte kiểm tra dự phòng theo chu kỳ (CRC). Nếu được xác nhận là khung hợp lệ dành cho khung chính, nó sẽ xử lý lệnh khung dựa trên mã chức năng của nó và chuẩn bị gửi khung. Khi Slave nhận được một thông báo sai, nó sẽ gửi lại một khung lỗi. Nếu tin nhắn nhận được có CRC không chính xác, Slave có thể chọn không phản hồi. Nếu master không nhận được phản hồi từ Slave trong thời gian quy định, nó sẽ truyền lại tin nhắn yêu cầu. Nếu nhiều lần truyền lại không nhận được phản hồi từ Slave thì lỗi giao tiếp sẽ được báo cáo.
5.4 Xác định tốc độ truyền thông
Vì tất cả các thiết bị đều nằm trong cùng một khung máy nên khoảng cách giữa các mô-đun là tối thiểu. Modbus hoạt động trên RS485 để-giao tiếp đường dài, loại bỏ nhu cầu xem xét ảnh hưởng của khoảng cách đến tốc độ truyền. Hơn nữa, chế độ giao tiếp phụ-chính sẽ ngăn ngừa tắc nghẽn đường truyền. Do đó, từ góc độ hiệu quả truyền thông, miễn là tốc độ truyền đã đặt không vượt quá giới hạn tốc độ truyền tối đa của chip được sử dụng trong mô-đun, thì tốc độ truyền cao hơn sẽ giúp trao đổi thông tin nhanh hơn và hiệu quả truyền thông cao hơn. Việc đặt tốc độ baud giống hệt nhau cho cả hai bên giao tiếp sẽ đảm bảo rằng đầu nhận lấy mẫu từng bit dữ liệu ở điểm giữa của chu kỳ bit, từ đó đạt được kết nối đáng tin cậy.
5.5 Phương pháp gỡ lỗi hợp lý
Trong quá trình gỡ lỗi, trước tiên hãy kiểm tra giao tiếp giữa mỗi mô-đun CPU và máy vi tính thông qua mô-đun chuyển đổi dữ liệu RS485/RS232. Sau khi thử nghiệm riêng lẻ thành công, hãy tiến hành gỡ lỗi liên-mô-đun, cải thiện đáng kể hiệu quả gỡ lỗi tổng thể. Trong quá trình gỡ lỗi giao tiếp mô-đun-đến{6}}máy tính, máy tính sử dụng phần mềm gỡ lỗi Modbus để mô phỏng quá trình giao tiếp của máy chủ, chủ động yêu cầu thông tin từ máy phụ. Điều này làm cho toàn bộ quá trình tiếp nhận và truyền tải trở nên minh bạch và rõ ràng, cho phép giải quyết kịp thời các vấn đề về mô-đun. Trong quá trình gỡ lỗi chung, phần mềm giám sát xe buýt sẽ quan sát dữ liệu từ cả hai phía để kịp thời xác định và giải quyết vấn đề.
6 điểm đổi mới của bài viết này
Đầu tiên, bài viết này áp dụng Modbus, một tiêu chuẩn công nghiệp phổ quát, trong thiết bị bảo vệ. Phần mềm công cụ cần thiết có thể được lấy trực tiếp từ các trang web có liên quan mà không phải chịu chi phí sở hữu trí tuệ. Thứ hai, thiết bị bảo vệ thực hiện đa nhiệm và sử dụng giao thức Modbus để tạo cơ chế gỡ lỗi chung hợp lý giữa các mô-đun CPU, cải thiện đáng kể hiệu quả phát triển hệ thống hợp tác.




