Các thanh ghi liên quan:
SPIxSTAT: Thanh ghi trạng thái và điều khiển
- SPIEN:
+ 0: Không cho phép SPIx hoạt động. - SPITBF
+ 1: SPIxTXB bị đầy, dữ liệu chƣa đƣợc truyền đi. + 0: Việc truyền dữ liệu bắt đầu, SPIxTBF rỗng. - SPIRBF
+ 1: Bộ nhận đầy. + 0: Bộ nhận rỗng.
SPIxCON1: Thanh ghi điều khiển 1
- DISSCK:
+ 1: Không cho phép sử dụng chân SCK. + 0: Cho phép sử dụng chân SCK.
- DISSDO:
+ 1: Không cho phép sử dụng chân SDO. + 0: Cho phép sử dụng chân SDO.
- MODE16:
+ 1: Truyền thông với bộ đệm 8 bít. + 0: Truyền thông với bộ đệm 8 bít. - SMP:
Chế độ chủ (master mode):
+ 1: Dữ liệu vào đƣợc lấy ở cuối dữ liệu ra. + 0: Dữ liệu vào đƣợc lấy ở giữa dữ liệu ra. Chế độ tớ (slave mode)
+ Bít này phải đƣợc xóa trƣớc khi sử dụng chế độ này. - CKE:
+ 1: Chuỗi dữ liệu ra nối tiếp đƣợc chuyển đi từ trạng thái hoạt động sang trạng thái nghỉ.
+ 0: Chuỗi dữ liệu ra nối tiếp đƣợc chuyển đi từ trạng thái nghỉ sang trạng thái hoạt động.
- SSEN:
Bít này chỉ đƣợc sử dụng ở trong chế độ tớ, nó cho phép sử dụng chân SS hay không.
- MSTEN:
+ 111: Tỷ lệ 1:1 + 110: Tỷ lệ 2:1 …
+ 000: Tỷ lệ 8:1
- PPRE: Cấu hình bộ chia chính: + 11: Tỷ lệ 1:1
+ 10: Tỷ lệ 4:1 + 01: Tỷ lệ 16:1 + 00: Tỷ lệ 64:1
SPIxCON2: Thanh ghi điều khiển 2
- FRMEN:
+ 1: Cho phép hỗ trợ khung SPIx.
+ 0: Không cho phép hỗ trợ khung SPIx. - SPIFSD
+ 1: Xung đồng bộ vào. + 0: Xung đồng bộ ra. - FRMPOL
+ 1: Xung đồng bộ kích hoạt mức cao. + 0: Xung đồng bộ kích hoạt mức thấp. - SATB
- SATDW
3.4. Tổ chức bộ nhớ
3.5.1. Không gian địa chỉ chương trình
Bộ nhớ đƣợc định địa chỉ 24 bít. Các địa chỉ này đƣợc nạp vào thanh ghi PC (Program counter) 23 bít trong quá trình thực thi chƣơng trình. Các ứng dụng truy cập vào vùng nhớ chƣơng trình sẽ bị cấm trong dải từ 0x000000 đến 0x7FFFFF, ngoại trừ lệnh cho phép truy cập các bít cấu hình và nhận diện chip TBLRD/TBLWT. Hình 3.8 mô tả cấu trúc của địa chỉ thanh ghi bộ đếm chƣơng trình.
Hình 3.8: Tổ chức bộ nhớ chương trình
3.5.2. Không gian địa chỉ dữ liệu
Độ rộng bus dữ liệu là 8 bít. Khoảng không dữ liệu đƣợc truy cập bởi việc sử dụng bộ AGU.
Để đọc các byte dữ liệu, CPU sẽ đọc cả một từ (word), sau đó sử dụng LSB của thanh ghi EA để xác định byte cần đọc. Byte đó sẽ đƣợc thay thế LSB trên đƣờng dừ liệu. Việc ghi byte dữ liệu sẽ chỉ đƣợc viết vào mảng hoặc thanh ghi với địa chỉ tƣơng ứng.
Việc truy cập theo word phải đƣợc sắp thành hàng theo các địa chỉ chẵn. Nếu dữ liệu không đƣợc sắp thành hàng thì bẫy lỗi sẽ đƣợc tạo ra và lệnh không thể đƣợc hoàn thành.
Các thanh ghi chức năng đặc biệt đƣợc đặt từ địa chỉ 0x0000 đến 0x07FF, các thanh ghi này đƣợc sử dụng để thiết lập ngoại vi và nhân CPU, phục vụ cho việc điều khiển các hoạt động của vi điều khiển.
Nhân của PIC16F877A có hai vùng dữ liệu là X và Y. Hai vùng dữ liệu này có thể đƣợc truy cập bởi bộ AGUs. Tính năng này cho phép đẩy hai từ đồng thời vào RAM khi thực thi một lệnh giúp tăng hiệu năng của các thuật toán của bộ DSP nhƣ FIR, FFT.
Sau vùng dữ liệu X,Y là vùng DMA RAM, vùng nhớ này có dung lƣợng hai kbyte, nó có thể đƣợc truy cập đồng thời bời CPU và bộ điều khiển DMA. Hình 3.9 mô tả chi tiết tổ chức bộ nhớ dữ liệu của PIC16F877A.
Hình 3.9: Tổ chức bộ nhớ dữ liệu của PIC16F877A
3.5.3. Ngăn xếp phần mềm
Con trỏ ngăn xếp luôn trỏ vào từ đầu tiên và tăng dần từ địa chỉ thấp đến địa chỉ cao. Hình 3.10 dƣới đây mô tả giá trị của thanh ghi PC trong mỗi lần sử dụng lệnh CALL, MSB của thanh ghi PC luôn là 0 trƣớc mỗi thao tác đẩy dữ liệu vào ngăn xếp.
3.6. Cấu hình dao động của PIC16F877A
Bộ dao động của PIC16F877A bao gồm những tính năng sau: - Dao động nội hoặc ngoại.
- Tần số dao động nội sử dụng vòng bám pha PLL.
- Bộ dao động FRC nội sử dụng vòng bám pha, cho phép hệ thống chạy với tốc độ tối đa mà không cần phần cứng phát dao động ở bên ngoài.
- Có khả năng chuyển đổi giữa các nguồn dao động.
- Chế độ tiết kiệm điện cho phép lập trình lại thang chia tỉ lệ dao động hệ thống. - Giám sát và phát hiện lỗi dao động chủ.
- Thanh ghi điều khiển dao động OSCCON.
- Hỗ trợ bộ dao động thạch anh phụ cho khối chuyển đổi số sang tƣơng tự.
Hình 3.11: Hệ thống tạo dao động cho PIC16F877A
PIC16F877A cung cấp bẩy lựa chọn dao động hệ thống: - Bộ dao động RC nhanh (FRC).
- FRC với bộ bám pha.
- Dao động chủ (XT, HS, EC). - Dao động chủ với bộ bám pha.
- Dao động FRC với thang chia tỷ lệ.
Bằng cách thiết lập các bít trong thanh ghi cấu hình FNOSC<2:0> và FOSCSEL<2:0>, POSCMD<1:0>, ngƣời dùng có thể chọn các chế độ đồng hồ hệ thống phù hợp với từng ứng dụng cụ thể.
Thông thƣờng, sau khi xuất xƣởng, các chip PIC16F877A đƣợc đặt ở chế độ sử dụng FRC. Chế độ này, tần số là 7,37 MHz.
Bộ dao động chủ có thể sử dụng một trong các nguồn dao động sau: - XT: Bộ cộng hƣởng thạch anh trong dải từ 3MHz đến 10MHz. - HS: Thạch anh trong dải từ 10MHz đến 40MHz.
- EC: Sử dụng tín hiệu dao động ngoại nối vào chân OSC của vi điều khiển. Bộ dao động phụ (LP) và bộ dao động tiêu thụ công suất thấp (LPRC) đều sử dụng thạch anh 32,768 kHz.
CHƢƠNG 4: KHỐI GIAO TIẾP INTERNET VÀ TRUYỀN DỮ LIỆU( ETHERNET TO UART )
Khối E2U đƣợc thiết kế chủ yếu bao gồm vi điều khiển PIC18F67J60-I/PT của hãng Microchip kết nối với đầu nối RJ45 HR911105A của hãng Hanrun. .
Hình 4.1: Sơ đồ mạch nguyên lý của khối E2U
Sơ đồ mạch nguyên lý của khối đƣợc trình bày ở hình 4.1. Sau đây là một số thông số kỹ thuật của đầu nối RJ45 HR911105A và vi điều khiển PIC18F67J60-I/PT.
4.1. Đầu nối RJ45 HR911105A
Đầu nối RJ45 HR911105A do hãng Hanrun sản xuất cho phép giao tiếp với mạng Ethernet có tốc độ truyền nhận 100Mbps. HR911105A có các đặc điểm sau:
Đƣợc thiết kế cho các ứng dụng mạng.
Khả năng cách điện tới điện áp 1500V theo yêu cầu của chuẩn IEEE802.3. Thiết kế mạch PCB tối ƣu.
Độ tin cậy cao nhờ giảm thiểu các linh kiện từ tính trong thiết kế. Hình 4.2 trình bày sơ đồ nguyên lý và cấu tạo cơ học của linh kiện.
Hình 4.2: Sơ đồ nguyên lý và cấu tạo cơ học của đầu nối RJ45 HR911105A
Chi tiết các thông số kỹ thuật đƣợc trình bày trong datasheet của nhà sản xuất.
4.2. Vi điều khiển PIC18F67J60-I/PT
PIC18F67J60 là một vi điều khiển mạnh đƣợc thiết kế chủ yếu cho các ứng dụng mạng và có tích hợp sẵn Ethernet controller với các tích năng:
Tƣơng thích chuẩn IEEE 802.3.
Tƣơng thích mạng 10/100/1000Base – T. Tích hợp sẵn địa chỉ vật lý.
Khả năng lập trình tự động gửi lại khi có xung đột đƣờng truyền. Khả năng lập trình Padding và tạo CRC.
Khả năng lập trình tự động loại bỏ những gói tin bị lỗi. Có 2 đèn LED hiển thị.
Có thể chọn xung clock từ nguồn ngoài từ 2.778 đến 41.667MHz. Có clock nội 31kHz.
Chế độ địa chỉ 12, 16 và 20 bit.
Chi tiết các thông số kỹ thuật đƣợc trình bày trong datasheet của nhà sản xuất. Hình 4.3 mô tả sơ đồ khối của khối E2U.
CHƢƠNG 5: CÁC PHƢƠNG PHÁP ĐO DÒNG ĐIỆN XOAY CHIỀU 5.0. Phân loại các phƣơng pháp đo dòng điện xoay chiều 5.0. Phân loại các phƣơng pháp đo dòng điện xoay chiều
Xét về mặt tiếp xúc vật lý với đối tƣợng đo là dòng điện thì có 3 phƣơng pháp là: - Đo trực tiếp: dùng các dụng cụ đo dòng điện nhƣ ampe kế, để đo trực tiếp và đọc kết quả trên thang chia độ của dụng cụ đo.
- Đo gián tiếp: dùng volt kế đo điện áp sụt trên một điện trở chuẩn mắc trong mạch có dòng điện chạy qua, thông qua phƣơng pháp tính toán sẽ có đƣợc giá trị dòng điện cần đo.
- Phƣơng pháp so sánh: so sánh dòng đip sụt trên một điện trở chuẩn mắc trong mạch bằng của dòng điện cần đo và dòng điện mẫu, sẽ đọc đƣợc kết quả trên mẫu.
Từ các đặc tính của dòng điện thì ta có những kiểu đo dòng sau:
- Kiểu đo thế sụt trên một điện trở shunt. Điện trở này thƣờng có độ chính xác cao. Điện áp sụt qua điện trở tỷ lệ thuận với dòng điện cần đo. Hình 5.1 giới thiệu nguyên tắc đo dòng bằng điện trở Shunt.
Điện trở Shunt
Dòng điện cần đo
Hình 5.1: Nguyên tắc đo dòng bằng điện trở Shunt
- Dựa vào định luật cảm ứng Faraday, từ trƣờng biến thiên sẽ sinh ra dòng điện biến thiên. Dòng điện này gọi là dòng điện cảm ứng. Nhƣ vậy, dòng điện cần đo sẽ tạo ra một dòng điện cảm ứng, ta có thể đo dòng điện cảm ứng và suy ra đƣợc giá trị của
dòng điện cần đo. Các loại cảm biến sử dụng định luật này nhƣ các biến dòng CT, hình 5.2 giới thiệu 1 số loại cảm biến dòng CT.
Hình 5.2: Các loại CT trên thị trường
- Dựa vào định luật Hall, khi có một từ trƣờng vuông góc với dây dẫn điện, thì hai đầu dây dẫn đó sẽ sinh ra một hiệu điện thế gọi là hiệu điện thế Hall. Hiệu điện thế này đƣợc khuếch đại và đƣa vào bộ chuyển đổi tƣơng tự số của vi điều khiển. Có thể kể ra đây một số loại cảm biến Hall sử dụng cho việc đo dòng điện thông dụng nhƣ vi mạch ACS712, các đặc điểm và thông số của vi mạch này đã đƣợc trình bầy ở chƣơng 2. Hình 5.3 mô tả nguyên tắc hoạt động của cảm biến Hall.
Hình 5.3: Nguyên tắc hoạt động của cảm biến Hall
5.1. Thuật toán đo dòng điện xoay chiều hiệu dụng
Điện áp của cảm biến ra tuyến tính từ 0V đến +5V tƣơng ứng với dòng vào từ - 20A đến +20A (Dòng vào 0A thì thế ra là +2.5V).
I = 8*Viout – 20 (Ampe)
Đầu ra của cảm biến đƣợc nối vào ADC của vi điều khiển nên điện áp Viout đƣợc tính nhƣ sau:
Viout = 5* (Vol)
Trong đó Vref của ADC là +5V, độ phân giải ADC là 10 bit. Dòng điện hiệu dụng đƣợc tính theo công thức:
IRMS =
Trong đó I(i) là các mẫu của dòng điện xoay chiều. N là số mẫu lấy trong một chu kỳ, N càng lớn kết quả càng chính xác.
Thuật toán đo dòng hiệu dụng cho lƣới điện 50Hz:
Đúng i = 0
Delay 1ms
i = 20
I(i) = read ADC
IRMS =
i ++
CHƢƠNG 6: CÁC BƢỚC THỰC HIỆN VÀ KẾT QUẢ 6.0. Thiết kế chế tạo phần cứng hệ thống 6.0. Thiết kế chế tạo phần cứng hệ thống
Mô tả hệ thống:
Trong luận văn này trên cơ sở hệ thống điều khiển thiết bị điện qua mạng của đề tài KC.03.12/06-10 ngoài tính năng điều khiển các thiết bị điện em đã phát triển tiếp phần giám sát và đo dòng điện tiêu thụ tại mỗi thiết bị, Hệ thống có cả phần giám sát và đo dòng điện đƣợc mô tả nhƣ hình 6.1.
Hình 6.1: Sơ đồ mạch của hệ thống
Các lối ra xoay chiểu đƣợc nối tiếp với 4 cảm biến ACS712. Các cảm biến này đƣợc cấp bằng nguồn +5VDC và tính hiệu lối ra tỉ lệ tuyến tính với dòng điện qua cảm biến.
Các đầu ra điện áp của cảm biến đƣợc đọc bởi bộ ADC của vi điều khiển PIC 16F887A. Từ đó vi điều khiển biết đƣợc giá trị dòng điện tải (IPEAK và IRMS) Giá trị dòng điện đo đƣợc sẽ đƣợc so sánh với ngƣỡng để quyết định nội dung của gói tin phản hồi về trung tâm.
chiều cho mạch, vừa hỗ trợ đo điện áp của lƣới điện xoay chiều thì ta có thể tính đƣợc công suất tiêu thụ của tải với độ chính xác nhất định.
6.0.1. Khối nguồn nuôi
Chức năng chính của modul này là cung cấp các mức nguồn +3,3V và +5V chuẩn cho toàn bộ các linh kiện trong mạch. Hỗ trợ nguồn vào dải rộng lên tới 60V. Chịu đƣợc dòng tải lối ra lên tới 3 Ampe. Khối nguồn gồm có các linh kiện sau:
- J1 là loại giắc cắm dành cho điện một chiều. Thế nguồn ngoài phải lớn hơn 7V. - D1 chống cắm ngƣợc nguồn ngoài.
- C1, C22, C6: Tụ lọc nguồn.
- POWER LED: báo nguồn với trở hạn dòng R1.
- LM2596: IC ổn áp nguồn xung, thế lối ra đƣợc xác định bằng tỷ lệ phân áp giữa R29 và R30. IC này tạo nguồn +5V nuôi cảm biến ACS712 .
- LM1117: IC ổn áp tuyến tính tạo nguồn 3.3V cho dsPIC33.
Nguồn nuôi ngoài cho hệ thống đƣợc lấy từ biến áp hạ thế xoay chiều 12V - 1A. Điện áp xoay chiều sau đó đƣợc chỉnh lƣu và tạo ra điện áp một chiều +17V. Điện áp một chiều ban đầu này sẽ đƣợc đƣa đến các mạch ổn áp tiếp theo và đồng thời đƣợc đƣa đến một cổng ADC của PIC 16F877A để theo dõi điện áp nguồn 220VAC.
IC ổn áp dạng xung LM2596 ra 5V một chiều nuôi cảm biến ACS712 và vi điều khiển PIC16F877A.
Nguồn +3V3 đƣợc tạo ra từ +5VDC bởi IC ổn áp tuyến tính LM1117. Hình 6.2 mô tả sơ đồ mạch điện khối nguồn nuôi.
6.0.2. Module E2U ( Ethernet to Uart )
Hình 6.3: Hình Module E2U
Module Ethernet2Uart đƣợc nuôi bằng nguồn +3V3 và truyền thông với PIC16F887A qua giao tiếp UART. Hình 6.3 mô tả khối của Module E2U đã đƣợc thiết kế.
6.0.3. Khối rơle và cảm biến
Hình 6.4: Sơ đồ mạch điện khối rơle và cảm biến
PIC16F877A điều khiển các relay thông qua IC đệm ULN2803.
Cảm biến dòng ACS712 đƣợc mắc nối tiếp với tải thông qua các tiếp điểm của relay. Khi đóng relay, ACS712 sẽ sinh ra điện áp tại chân Viout có độ lớn tƣơng ứng dòng qua tải, và nằm trong dải 0V ÷ 5V.
Tín hiệu điện áp biến thiên từ cảm biến sau đó đi đến bộ lọc thông thấp để chống chồng phổ (antialias filter), có cấu trúc kiểu Sallen-Key bậc II ( Hình 6.5):
Hình 6.5: Bộ lọc thông thấp
Tín hiệu điện sau khi qua bộ lọc đƣợc đƣa đến đầu vào ADC của PIC16F877A. Bộ ADC đƣợc xác lập thế chuẩn Vref = +5V và tốc độ lấy mẫu là 1200Hz. Từ các giá trị ADC sẽ tính đƣợc dòng xoay chiều hiệu dụng qua tải và gửi ra mạng Internet.
6.0.4. Khối xử lý dữ liệu và điều khiển công suất PaC (Processing and Control)
Khối PaC có nhiệm vụ nhận dữ liệu từ khối E2U, xử lý dữ liệu rồi xuất tín hiệu tới tầng công suất để điều khiển các thiết bị. Trung tâm của khối chính là vi điều khiển PIC16F887A . Vi điều khiển PIC16F877A đƣợc nuôi bằng nguồn +5V.
Vi điều khiển này một mặt giao tiếp với khối E2U theo chuẩn RS232, mặt khác kết nối với tầng công suất để điều khiển thiết bị nó có nhiệm vụ theo dõi dữ liệu từ module U2E và ra quyết định điều khiển rơle đồng thời đọc các cổng ADC để tính ra giá trị dòng điện qua tải và gửi trở lại module U2E.
Hình 6.6: sơ đồ mạch điện của khối khối PaC