Thiết kế thiết bị đầu cuối giám sát chất lượng điện dựa trên chip DSP TMS320F2812

Cập nhật: ngày 12 tháng 2023 năm XNUMX
DSP (Bộ xử lý tín hiệu kỹ thuật số) được sử dụng ngày càng thường xuyên hơn trong các ứng dụng kỹ thuật ngày nay. Có ba lý do chính cho điều này: Thứ nhất, nó có khả năng tính toán mạnh mẽ, có khả năng xử lý các thuật toán tín hiệu kỹ thuật số khác nhau như FFT và lọc kỹ thuật số; Thứ hai, các nhà sản xuất DSP lớn đã thiết kế các IDE liên quan (phát triển tích hợp) cho sản phẩm của họ. Môi trường), làm cho sự phát triển của các ứng dụng DSP thậm chí còn mạnh mẽ hơn; thứ ba, nó có hiệu suất chi phí cao và hoàn toàn cạnh tranh với hiệu suất mạnh mẽ và giá thấp.

TI đã thiết kế môi trường phát triển hình ảnh tích hợp CCS (CodeComposerStudio) cho DSP của công ty và DSP/BIOS là một phần quan trọng của CCS. Về cơ bản, nó là nhân hệ điều hành thời gian thực dựa trên nền tảng DSP dòng TMS320 và cũng là một phần cốt lõi của phần mềm thời gian thực của TI. công nghệ- Công nghệ eXpressDSP. DSP/BIOS chủ yếu bao gồm ba khía cạnh: hạt nhân đa luồng, công cụ phân tích thời gian thực, thư viện cấu hình ngoại vi.

1 Yêu cầu chức năng hệ thống

Chức năng chính của thiết bị đầu cuối giám sát chất lượng điện là theo dõi và phân tích chất lượng điện của lưới điện (Ba giai đoạn Vôn và hiện tại) trong thời gian thực. Các biến giám sát chính là: giá trị hiệu dụng của điện áp và dòng điện, công suất hoạt động và phản kháng, tần số điện áp, không cân bằng ba pha, từng điện áp hài và tỷ lệ nội dung dòng điện, hệ số công suất, hệ số công suất lệch pha, dao động điện áp, thời gian dài, nhấp nháy cho a thời gian ngắn.

Hệ thống chọn chip DSP hiệu suất cao TMS320F2812 của TI làm lõi xử lý và tốc độ xử lý 150MIPS của nó đủ để đáp ứng các yêu cầu thời gian thực của hệ thống. Theo yêu cầu hệ thống, hệ thống được chia thành các module chức năng sau: tự kiểm tra có hướng dẫn mô-đun, mô-đun thực hiện nhiệm vụ thu thập, mô-đun tiền xử lý dữ liệu chất lượng điện, mô-đun vận hành phân tích chất lượng điện, mô-đun lưu trữ dữ liệu, mô-đun giao tiếp và mô-đun tương tác giữa người và máy tính.

Theo phương pháp lập trình truyền thống, các module chức năng này sẽ được tổ chức cùng nhau theo cấu trúc tuần tự, việc gọi và chuyển đổi giữa các module được hoàn thành bằng mã của từng module, sao cho các module của ứng dụng ở trạng thái ghép nối. Nếu bạn muốn thêm một mô-đun chức năng mới hoặc sửa đổi một mô-đun chức năng hiện có, không chỉ phải sửa đổi mã gọi của mô-đun liên quan mà mô-đun mới rõ ràng cũng sẽ ảnh hưởng đến các đặc tính đáp ứng thời gian của hệ thống ban đầu, khiến cho việc nâng cấp và bảo trì khá rắc rối.

Sự xuất hiện của DSP/BIOS cung cấp một cơ chế khác để tổ chức các mô-đun chức năng của các chương trình ứng dụng. Nó xử lý từng mô-đun chức năng như một chuỗi nhiệm vụ. Thông qua dịch vụ hạt nhân có thể định cấu hình, mỗi luồng tác vụ sẽ ghép các tài nguyên CPU theo mức độ ưu tiên của bộ lập lịch hệ thống. Mỗi luồng tác vụ đều đồng bộ hóa, giao tiếp và trao đổi dữ liệu, v.v. đều được phối hợp. Cơ chế này cải thiện khả năng bảo trì của ứng dụng và cung cấp phương tiện kiểm tra lại thuận tiện và tiên tiến hơn. Theo các đặc điểm trên, hệ thống này sử dụng DSP/BIOS làm hạt nhân thời gian thực và thiết kế toàn bộ hệ thống dựa trên điều này.

Hình 1 cho thấy sự phân loại các mô-đun chức năng của hệ thống trong DSP / BIOS.

2 Thiết kế phần mềm dựa trên DSP / BIOS

2.1 Lập kế hoạch chuỗi thực thi

Trong hoạt động thời gian thực của hệ thống, một số chức năng chức năng được điều khiển bởi các tín hiệu điều khiển bên ngoài hoặc chạy trong một khoảng thời gian định trước. Vì vậy, chế độ lái và thời gian thực hiện chức năng là rất quan trọng đối với hệ thống thời gian thực. DSP/BIOS hỗ trợ các ứng dụng đa luồng và các luồng có thể được xác định theo mức độ ưu tiên khác nhau.

Các luồng có mức độ ưu tiên cao có thể làm gián đoạn các luồng có mức độ ưu tiên thấp và tương tác giữa các luồng khác nhau, chẳng hạn như chặn, liên lạc và đồng bộ hóa, được chia thành 4 loại sau (ưu tiên từ cao đến thấp): Ngắt phần cứng (HWI), Ngắt phần mềm ( SWI), Tác vụ (TSK), Chủ đề nền (IDL). Theo yêu cầu chức năng của hệ thống đầu cuối giám sát chất lượng điện, các mô-đun chức năng phụ của hệ thống được chia thành 4 loại luồng trên.

Đầu tiên, lên lịch cho luồng ngắt phần cứng (HWI). Trong trường hợp bình thường, mã chương trình chính của hệ thống được đặt trong phần mềm hoặc tác vụ; tuy nhiên, mã chương trình của mô-đun chức năng có liên quan chặt chẽ với thiết bị bên ngoài và yêu cầu hiệu suất thời gian thực cao phải được đặt trong ngắt phần cứng.

Theo các yêu cầu trên, hệ thống thiết lập các mô-đun chức năng phụ sau làm luồng ngắt phần cứng: mô-đun nhiệm vụ thu thập A/D và mô-đun giao tiếp (nhận). Việc thu thập A/D là nền tảng quan trọng của hệ thống này và nó được kết nối chặt chẽ với phần cứng cơ bản của hệ thống, do đó, nó được đặt làm luồng ngắt phần cứng (HWI).

Quy trình chính là: chip A/D thu thập dữ liệu thời gian thực của lưới điện ở một tần số nhất định, sau đó giao tiếp với cổng McPSP của DSP. DSP nhận dữ liệu do chip A/D thu thập và lưu trữ vào một vùng cụ thể của RAM trên chip để chuẩn bị cho hoạt động của các luồng khác. Mô-đun giao tiếp sử dụng RS485 để giao tiếp với máy tính chủ, có liên quan chặt chẽ với phần cứng cơ bản của hệ thống và giao diện SCI của bản thân DSP chỉ có FIFO với tối đa 16 từ. Nếu dữ liệu nhận được không được xử lý kịp thời, dữ liệu sẽ bị mất.

Phần sau đây mô tả cài đặt tham số của mô-đun HWI trong DSP/BIOS. Ngắt nhận của cổng nối tiếp McBSP được đặt ở vị trí HWI_INT6 của mô-đun HWI và hàm ISR ad_rx_isr() của ngắt nhận được điền vào mục gọi hàm của ngắt HWI_INT6; đồng thời chọn sử dụng chức năng lập lịch HWI của DSP/RI-OS, khi phản hồi McBSP Khi cổng nối tiếp nhận được ngắt, hệ thống sẽ tự động gọi hàm ad_rx_isr(). Cài đặt ngắt nhận cổng nối tiếp McBSP được hiển thị trong Hình 2.

Tương tự như cài đặt ngắt nhận cổng nối tiếp McBSP, ngắt nhận SCIA được đặt làm ngắt nhận truyền thông và hàm ISR của nó scia_rx_isr() được điền vào mục gọi hàm của ngắt HWI_INT9. Khi phản hồi ngắt nhận, hệ thống gọi hàm scia_rx_isr() để xử lý. Luồng CLK cũng là một trong những luồng ngắt phần cứng HWI. Nó cung cấp tham chiếu thời gian cho hoạt động của toàn bộ hệ thống, cung cấp phương thức để người dùng gọi các hàm theo định kỳ và cung cấp tham chiếu thời gian cho một số công cụ đánh giá mã. Mô-đun CLK hoàn toàn dựa vào ngắt hẹn giờ của DSP. TMS320C2812 cung cấp 2 bộ định thời cho DSP/BIOS.

Thứ hai, sắp xếp luồng ngắt phần mềm (SWI). Tất cả các ngắt phần mềm được bắt đầu thông qua lệnh gọi API của hạt nhân DSP/BIOS. Để thuận tiện cho việc kiểm soát, hệ thống đặt hộp thư 16 bit (Hộp thư) cho mỗi đối tượng SWI, hộp thư này có thể được sử dụng để khởi động có điều kiện hộp thư tương ứng. Sự gián đoạn của phần mềm. Các mô-đun chức năng phụ quan trọng hơn các tác vụ thông thường và xảy ra thường xuyên có thể được sắp xếp trong luồng ngắt phần mềm (SWI). Các mô-đun chức năng phụ của nó bao gồm: mô-đun tiền xử lý dữ liệu chất lượng điện, mô-đun giao tiếp (gửi).

Mô-đun tiền xử lý dữ liệu chất lượng điện chủ yếu hoàn thành quá trình xử lý tiếp theo các kết quả chuyển đổi A/D. Cần phải xử lý trước kết quả chuyển đổi A/D. Do chip A/D chọn tần số cố định để thu, nhưng tần số của lưới điện lại dao động, việc thực hiện trực tiếp các thao tác FFT trên dữ liệu thu được sẽ gây rò rỉ phổ. Do đó, dữ liệu thu được phải được xử lý trước. Ví dụ: thao tác FFT 1024 điểm được thực hiện trên tổng số 1024 dữ liệu gồm 256 điểm cho mỗi 4 chu kỳ. Giả sử tần số trung bình của 4 chu kỳ là f, độ phân giải tần số là f/4 và kết quả thao tác FFT là f/4, 2f/4, 3f/4, f, 5f/4… cường độ trên tần số. Do đó, khi tần số lưới điện f thay đổi thì tần số dữ liệu lưới điện f để tính FFT cũng thay đổi tương ứng, nhờ đó tần số dữ liệu lưới điện f trước khi tính FFT luôn phù hợp với tần số lưới điện hiện tại fo.

Hoạt động cụ thể của mô-đun tiền xử lý dữ liệu chất lượng điện là nội suy dữ liệu sau khi chuyển đổi A/D và thuật toán nội suy sử dụng phép nội suy tuyến tính. Sau khi xác minh, ở điện áp định mức, sai số hoạt động FFT do thuật toán nội suy tuyến tính gây ra nằm trong khoảng 0. Trong khoảng 1‰. Ngoài ra, một chức năng khác của mô-đun là tính toán giá trị hiệu dụng của điện áp trong một chu kỳ. Đây là số liệu cần thiết để tính toán sự dao động điện áp và độ nhấp nháy dài hạn và ngắn hạn. Mô-đun giao tiếp (gửi) có nhiệm vụ gửi dữ liệu lên máy tính phía trên. Mặc dù yêu cầu về thời gian thực của nó không cao nhưng nó liên quan chặt chẽ đến lớp dưới cùng của phần cứng nên được đặt làm luồng ngắt phần mềm.

Khi xảy ra gián đoạn nhận cổng nối tiếp, hãy gọi hàm scia_rx_isr() để xử lý lệnh dữ liệu đã nhận và gửi dữ liệu chất lượng nguồn tương ứng theo lệnh liên quan. DSP/BIOS cung cấp mức ưu tiên từ 0 đến 14 cho đối tượng ngắt phần mềm. Theo tầm quan trọng của luồng trên, mức độ ưu tiên của luồng xử lý dữ liệu thu thập được đặt thành 14, luồng giao tiếp máy chủ được đặt thành 8 và các mức ưu tiên khác được dành cho việc nâng cấp phần mềm trong tương lai.

Cần lưu ý rằng các luồng ngắt (bao gồm ngắt phần cứng và ngắt phần mềm) đều chạy trên cùng một ngăn xếp. Khi xảy ra ngắt có mức ưu tiên cao và khiến hệ thống chuyển đổi tác vụ, luồng ngắt có mức ưu tiên cao sẽ làm gián đoạn luồng có mức ưu tiên thấp; Trước khi chạy luồng ngắt có mức ưu tiên cao, nội dung đăng ký có liên quan của luồng ngắt có mức ưu tiên thấp sẽ được lưu và ngắt có mức ưu tiên cao Sau khi luồng chạy, thanh ghi sẽ được khôi phục về nội dung ban đầu và tiếp tục hoàn thành bản gốc thread có mức độ ưu tiên thấp.

Do đó, nếu thiết lập quá nhiều ngắt phần cứng hoặc luồng ngắt phần mềm, ngăn xếp sẽ tràn. Vì lý do này, hầu hết các mô-đun nhiệm vụ phải được đặt trong các chuỗi nhiệm vụ. Tiếp theo, lên lịch chuỗi tác vụ (TSK). Giống như hầu hết các hệ thống thời gian thực, các chuỗi tác vụ là thành phần chính của toàn bộ hệ thống. Các hàm trong chuỗi tác vụ có thể chạy độc lập hoặc song song. Mô-đun quản lý tác vụ DSP/BIOS sắp xếp hoạt động theo mức độ ưu tiên của chuỗi tác vụ và hoàn thành việc chuyển đổi từ tác vụ này sang tác vụ khác thông qua chức năng chuyển đổi.

Mỗi tác vụ có 4 trạng thái thực thi: chạy, sẵn sàng, bị chặn và chấm dứt. Nhiệm vụ tháng Giêng được tạo ra và nó luôn ở một trong bốn trạng thái. DSP/BIOS cung cấp mức ưu tiên từ -l đến 15 cho từng đối tượng tác vụ. Các công việc sẽ được thực hiện theo thứ tự ưu tiên chặt chẽ, các công việc có cùng mức độ ưu tiên sẽ được sắp xếp theo thứ tự thực hiện theo nguyên tắc “đến trước, được phục vụ trước”. Cần lưu ý rằng khi một chuỗi tác vụ được tạo, một ngăn xếp chuyên dụng thuộc về tác vụ đó cần phải được tạo cùng lúc. Ngăn xếp được sử dụng để lưu trữ các biến cục bộ hoặc lồng các lệnh gọi hàm khác.

Chúng tôi đặt mô-đun tính toán phân tích chất lượng điện năng, mô-đun lưu trữ dữ liệu và mô-đun tương tác giữa người và máy tính trong chuỗi tác vụ (TSK). Mô-đun tính toán phân tích chất lượng điện năng có thể được chia thành ba phần: chuỗi nhiệm vụ tính toán hài hòa, chuỗi nhiệm vụ tính toán dao động điện áp và chuỗi nhiệm vụ tính toán nhấp nháy.

Chuỗi tác vụ tính toán điều hòa chịu trách nhiệm chính thực hiện các hoạt động FFT trên dữ liệu chất lượng điện được xử lý trước. Hoạt động FFT chủ yếu bao gồm năm phần: hoạt động chuyển đổi bit, hoạt động cửa sổ, hoạt động bướm dựa trên 2, hoạt động cơ sở phân chia và hoạt động tổng bình phương. Luồng tác vụ tính toán dao động điện áp có nhiệm vụ ghi lại các dao động của điện áp lưới trong vòng 3 phút. Mô-đun tiền xử lý dữ liệu chất lượng điện trước đó đã thu được giá trị hiệu dụng của điện áp cho mỗi chu kỳ.

Bằng cách này, chỉ cần ghi lại giá trị tối đa và tối thiểu của giá trị hiệu dụng của điện áp trong vòng 3 phút và sự khác biệt giữa hai giá trị này là sự dao động điện áp. Chuỗi tác vụ tính toán nhấp nháy bao gồm việc tính toán nhấp nháy thời gian ngắn và nhấp nháy dài hạn. Hiện nay, phương pháp thiết kế máy đo độ nhấp nháy IEC thường được áp dụng.

Tín hiệu tự kiểm tra thích ứng đầu vào đi qua bộ giải điều chế bậc hai, lọc theo trọng số băng thông, lọc thông thấp bậc nhất bình phương và đánh giá thống kê trực tuyến để cuối cùng thu được giá trị nhấp nháy; nhưng phương pháp này đủ phức tạp và tốn thời gian. Bằng cách đơn giản hóa thuật toán, người ta thu được một phương pháp tính toán đơn giản và khả thi: Tính toán FFT được thực hiện trên giá trị điện áp hiệu dụng của 256 chu kỳ liên tiếp và sau một loạt các phép tính như lấy trọng số, có thể thu được giá trị nhấp nháy là 12.8 giây và giá trị nhấp nháy là trong vòng 10 phút.

Giá trị có thể bị nhấp nháy ngắn hạn sau khi tính toán tương quan và 12 lần nhấp nháy trong thời gian ngắn liên tiếp (trong vòng 2 giờ) có thể bị nhấp nháy dài hạn sau khi tính toán. Sau khi xác minh, thuật toán này có sai số trong khoảng 1‰ so với thuật toán đo nhấp nháy của IEC.

Mô-đun lưu trữ dữ liệu cũng được đặt trong luồng tác vụ và quy trình của nó là lưu trữ kết quả phân tích chất lượng điện năng, dao động điện áp và giá trị nhấp nháy trong FIash. Mô-đun tương tác giữa người và máy tính bao gồm hai phần: tác vụ phát hiện bàn phím và tác vụ hiển thị tinh thể lỏng. Chuỗi nhiệm vụ phát hiện bàn phím có thể được hoàn thành bởi chức năng tuần hoàn PRD. PRD có thể xác định thời gian chạy của chức năng theo đồng hồ thời gian thực. Tại đây, hãy đặt tác vụ phát hiện bàn phím chạy một lần trong 100 mili giây để phát hiện các lần nhấn phím. Theo điều kiện chính, tinh thể lỏng trưng bày nhiệm vụ hiển thị dữ liệu chất lượng điện năng mới nhất hiện tại.

Cuối cùng, có luồng nền (IDL). Luồng nền (IDL) có mức ưu tiên thấp nhất. Nói chung, mô-đun phân tích thời gian thực (TRA) được đặt trong đó để chạy, mô-đun này có thể thực hiện tương tác và chẩn đoán ứng dụng DSP theo thời gian thực trong quá trình thực thi ứng dụng. CCS có các công cụ phân tích thời gian thực như biểu đồ tải CPU, biểu đồ thực thi, điều khiển kênh chủ, ghi thông tin, quan sát thống kê, bảng điều khiển thời gian thực và quan sát hạt nhân / đối tượng. Loạt mô-đun chức năng này có thể được đặt trong luồng IDL, thông qua các công cụ này, hoạt động của toàn bộ hệ thống DSP sẽ rõ ràng trong nháy mắt.

2.2 Giao tiếp và đồng bộ hóa giữa các luồng

Trong hệ thống đa luồng này, việc truy cập vào tài nguyên dùng chung đòi hỏi sự phối hợp lẫn nhau giữa các luồng để giải quyết.

Có ba phương thức giao tiếp trong môi trường DSP / BIOS, đó là giao tiếp dựa trên đường ống (PIPE), giao tiếp dựa trên kênh (SIO) dựa trên luồng (SIO) và giao tiếp dựa trên kênh máy chủ (HST).

Bảng 1 cho thấy các cách mà 4 luồng chia sẻ dữ liệu và đạt được đồng bộ hóa.

3 Hệ thống phân tích thời gian thực và gỡ lỗi

Bản thân chi phí của nhân DSP / BIOS sẽ có tác động đến hiệu suất thời gian thực của chương trình hệ thống. Vì lý do này, nhân DSP / BIOS cần được tối ưu hóa. Bạn có thể sử dụng công cụ phân tích DSP / BIOS được cung cấp trong CCS để xác định chi phí DSP / BIOS và khả năng tính toán của toàn bộ hệ thống ứng dụng. Ví dụ, biểu đồ tải CPU trong công cụ phân tích thời gian thực do DSP / BIOS cung cấp là một trong những công cụ thường được sử dụng.

Trong giai đoạn tích hợp cuối cùng, do tương tác thời gian thực và các lý do khác, thường sẽ có một số lỗi hoặc phản hồi không kịp thời. Nói chung, vì những hiện tượng này không theo chu kỳ và có tần suất xuất hiện thấp nên chúng rất khó tìm và theo dõi. Tuy nhiên, vì mô-đun RTA trong DSP / BIOS được nhúng trong lõi của nó, kết hợp với vectơ phát hiện tùy chỉnh do nhà phát triển cung cấp, nó cung cấp khả năng hiển thị duy nhất cho nguyên nhân gốc rễ của lỗi. Chức năng trực quan hóa này giúp cô lập và sửa lỗi rất nhiều, điều này không có sẵn trong các hệ thống phát triển nhúng nói chung.

Hiệu suất thực thi của chương trình ứng dụng trong toàn bộ hệ thống có thể được cải thiện từ bốn khía cạnh sau: lựa chọn cẩn thận loại luồng cho các chức năng chương trình khác nhau; đặt ngăn xếp hệ thống vào bộ nhớ trên chip; giảm tần số ngắt đồng hồ; tăng kích thước của bộ đệm đầu vào và đầu ra của luồng.

4 tóm tắt

Là bộ công cụ do CCS cung cấp, bản thân DSP / BIOS tuy chỉ chiếm rất ít tài nguyên CPU nhưng lại cho hiệu năng khá cao và đẩy nhanh tiến độ phát triển. Sử dụng DSP / BIOS làm hệ điều hành thời gian thực của thiết bị đầu cuối giám sát chất lượng điện năng, dễ dàng kiểm soát tài nguyên phần cứng khi viết chương trình DSP và phối hợp các mô-đun phần mềm khác nhau một cách linh hoạt, giúp tăng tốc đáng kể tiến độ phát triển phần mềm và gỡ lỗi. Thử nghiệm cuối cùng đã chứng minh rằng toàn bộ hệ thống có hiệu suất thời gian thực tốt và hoạt động ổn định và đáng tin cậy.