CHƯƠNG 4 : ĐỘNGCƠ ĐIỆN MỘT CHIỀU VÀ CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN
4.3 Phương pháp điều rộng xung (PWM: Pulse Width Modulation)
Phương pháp điều rộng xung ( PWM: Pulse Width Modulation) là phương pháp thay đổi điện áp phần ứng của động cơ DC bằng cách thay đổi thời gian đĩng ngắt cơng tắc nguồn. Đây là phương pháp sử dụng rất phổ biến vì những ưu điểm của nĩ như :
+ Mạch thiết kế khá đơn giản
+ Tốc độ động cơ thay đổi êm và như mong muốn
+ Tổn hao cơng suất nhỏ Xét mạch điện như hình vẽ :
Hình 4.7 Mạch nguyên lý điều rộng xung
Bằng cách thay đổi thời gian đĩng ngắt cơng tắc S, ta cĩ thể thu được điện áp trung bình đặt trên động cơ thay đổi theo ý muốn, khoảng thay đổi từ 0 V đến U. Dạng áp ra như sau :
Hình 4.8: Dạng áp ra sau khi điều chế
Trị trung bình điện áp trên tải tính theo cơng thức : Ug T t U U on t = = (4.11) Với T = ton + toff là chu kỳ khơng đổi của xung kích S.
Từ cơng thức (4.11) ta thấy 0 ≤Ut ≤ U , và Ut phụ thuộc tỉ số g , vậy cĩ thể điều chỉnh
điện áp trên tải theo ý muốn bằng cách thay đổi tỉ số g.
o Trong điều khiển động cơ DC bằng phương pháp PWM với tần số của xung điều khiển cao ,người ta cĩ thể sử dụng các vi điều khiển để tạo xung (tần số từ 5 Khz đến 20 Khz) để điều khiển các khối mạch động lực ( trong các khối mạch động lực ,thường dùng IGBT hay MosFet làm khĩa đĩng ngắt ).
4.4 Giới thiệu về Encoder sử dụng trong luận văn
- Trong thực tế cĩ nhiều loại encoder khác nhau như: Encoder tiếp xúc , Encoder từ trường, Encoder quang ( gồm : Encoder quang tương đối, Encoder quang tuyệt đối ) . Mỗi loại lại cĩ một nguyên lý hoạt động khác nhau, trong luận văn này , tơi chỉ sử dụng loại Encoder quang
tương đối ( incremental encoder ) nên chỉ trình bày kỹ về loại encoder này
- Loại incremental encoder dùng trong Luận văn được gắn đồng trục với động cơ DC 24V- 20W , và cĩ độ phân giải là 100 xung/vịng.
- Mơ hình thứ 1
- Incremental encoder về cơ bản là một đĩa trịn quay quanh một trục được đục lỗ như hình trên. Trên vành đĩa sẽ khắc các khe hở đều nhau . Ví dụ: Encoder cĩ 100 , 200 , 500 hay 1000 vạch khe hở trên vành đĩa
Hình 4.13 : Encoder quang loại tương đối-mơ hình 1
- Ở 2 bên mặt của cái vành đĩa, sẽ cĩ một bộ thu phát quang. Trong quá trình encoder quay quanh trục, nếu gặp lỗ rống thì ánh sáng chiếu qua được, nếu gặp mãnh chắn thì tia sáng khơng chiếu q được. Do đĩ tín hiệu nhận được từ encoder quang là một chuỗi xung. Mỗi encoder được chế tạo với số khe hở trên vành đĩa , sẽ cho biết sẵn số xung khi quay hết một vịng. Do đĩ ta cĩ thể dùng vi điều khiển đếm số xung đĩ trong
đĩ encoder nào cĩ số khe hở ( lỗ ) trên vành đĩa càng nhiều sẽ cho độ chính xác càng lớn.
Hình 4.14: Cách thức hoạt động của encoder quang loại tương đối
- Encoder mà tơi sử dụng trong Luận văn,hồn tồn giống với mơ hình ở trên. Tuy nhiên, mơ hình trên cĩ nhược điểm lớn là : ta khơng thể xác định được động cơ đang quay trái hay quay
phải, vì cĩ quay theo chiều nào đi nữa thì chỉ cĩ một dạng xung đưa ra. Ngồi ra thời điểm bắt đầu hoạt động của động cơ, ta cũng khơng thể nào biết được.
- Mơ hình thứ 2 ( Cải tiến từ mơ hình 1 , nhằm khắc phục các nhược điểm )
- Trong mơ hình này, người ta đục tất cả là 2 vịng lỗ . Vịng ngồi cùng giống như mơ hình 1 ( thường được gọi là vịng A ) , vịng giữa pha so với vịng ngồi là 90 độ (gọi là vịng B). Khi đĩ, dạng xung ra từ 2 vịng trên như sau :
Hình 4.16: Sơ đồ xung ra của encoder quang tương đối –mơ hình 2
- Hai xung đưa ra từ 2 vịng lệch nhau 90 độ, nếu vịng ngồi ( chuỗi xung A ) nhanh pha hơn vịng trong ( chuỗi xung B ) thì chắc chắn động cơ quay từ trái sang phải và ngược lại. - Một lỗ ở vịng trong cùng dùng để phát hiện điểm bắt đầu của động cơ. Cĩ thể viết chương
trình cho vi điều khiển nhận biết : nếu cĩ một xung phát ra từ vịng trong cùng này, tức là động cơ đã quay đúng một vịng. Tín hiệu của chuỗi xung do 1 lỗ này tạo ra thường gọi là xung Z.
- Với những đặc tính trên, encoder loại này ( mơ hình 2) được dùng rất phổ biến trong việc xác định vị trí gĩc của động cơ…..
- Tuy nhiên: Vấn đề quan trọng trong việc tìm mua những loại động cơ cĩ gắn encoder như thế này để làm đồ án – hay Luận Văn đối với sinh viên là khá khĩ , và cặp mắt quang 2 bên encoder để tạo xung thường bị hư và khơng cĩ đồ thay thế.
CHƯƠNG 5
HỌ VI ĐIỀU KHIỂN HCS12 VÀ VI ĐIỀU KHIỂN MC9S12DP512 5.1 Giới thiệu chung về họ vi điều khiển HCS12
Họ vi điều khiển 68HC12 được hãng Motorola cho ra đời vào năm 1996 dựa trên họ vi điều khiển 68HC11. Năm 2001 , hãng Motorola tiếp tục phát triển họ vi điều khiển 68HC12 lên thành họ vi điều khiển mới ,đĩ là HCS12 với : tốc độ xử lý nhanh hơn , dung lượng bộ nhớ được mở rộng và tích hợp thêm nhiều chức năng chuyên dụng … . Năm 2004 , bộ phận thiết kế-sản xuất linh kiện bán dẫn của hãng Motorola tách ra thành một cơng ty độc lập , lấy tên là FreeScale Semiconductor và trở thành nhà sản xuất cho tất cả các họ vi điều khiển của Motorola.
Hình 5.1: Sơ đồ phát triển của vi điều khiển hãng Motorola-FreeScale
Họ vi điều khiển HCS12 cĩ các đặc điểm chính như sau :
· Là họ vi điều khiển 16-bit cĩ tốc độ xử lý nhanh, tần số xung nhịp bus nội cĩ thể lên đến 32 Mhz ; và cĩ tích hợp Vịng-khĩa-pha , thường hay gọi là bộ PLL ( Phase-Lock-Loop) · Chế tạo theo cơng nhệ HCMOS nên cĩ độ ổn định và độ bền cao .
· Được nâng cấp từ họ vi điều khiển 68HC11/68HC12 và khơng cĩ sự thay đổi nào về tổ chức các thanh ghi xử lý so với 68HC11/68HC12 nên các đoạn chương trình viết bằng hợp ngữ sử dụng cho 68HC11/68HC12 đều cĩ thể sử dụng lại được với HCS12 .
· Các loại bộ nhớ bên trong gồm cĩ: RAM , EEPROM , Flash . Dung lượng bộ nhớ lớn,đặc biệt là bộ nhớ Flash và cĩ khả năng mở rộng bộ nhớ ngồi.
· Tích hợp nhiều chức năng thời gian như: Bắt giữ ngõ vào , so sánh ngõ ra, bộ đếm xung và sự kiện cổng, bộ điều rộng xung PWM, ngắt thời gian thực, Watchdog…
· Cĩ các mơ-đun truyền thơng nối tiếp như : Giao tiếp bất đồng bộ (SCI ), giao tiếp đồng bộ ( SPI ) , IIC.
· Tích hợp chế độ Debug chạy nền ,chỉ cần sử dụng 1 dây tín hiệu duy nhất (gọi tắt là BDM) · Cĩ các chế độ hoạt động để tiết kiệm năng lượng
· Cĩ 1 đến 2 bộ chuyển đổi tín hiệu tương tự sang tín hiệu số,độ phân giải 10-bit, cĩ 8 đến 16 kênh ( channel )
· Hỗ trợ tập lệnh logic Mờ khi viết chương trình bằng hợp ngữ.
· Nhiều Port xuất nhập đa dụng : Port A, Port B , Port K, Port J, Port H, Port M, Port S… · Ngồi ra, tùy theo ứng dụng ,mỗi dịng chun dụng trong họ HCS12 sẽ tích hợp thêm các
mơ-đun chức năng chuyên dụng như: USB, CAN , BDLC , Ethernet , điều khiển LCD , Điều khiển Motor…:
+ Dịng HCS12A : Dành cho những ứng dụng thơng thường
+ Dịng HCS12B hay C : Cĩ tích hợp thêm 1 bộ giao tiếp CAN , nhưng lại khơng cĩ giao tiếp IIC , giá thấp
+ Dịng HCS12D : Tích hợp đầy đủ các chức năng thơng dụng ,và cĩ thêm giao tiếp CAN , BDLC . Cĩ nhiều chân Xuất/Nhập và chức năng về thời gian về thời gian nhất. + Dịng HCS12NE : Tích hợp bộ biến đổi tín hiệu số sang tín hiệu tương tự bên trong ( DAC) và cĩ thêm giao tiếp Ethernet
+ Dịng HCS12L : Tích hợp mơ-đun điều khiển LCD cỡ lớn (LCD 4x60) , giao tiếp USB , tích hợp thêm khối chức năng DMA
+ Dịng HCS12UF: Giao tiếp USB , cĩ mơ-đun giao tiếp với các loại thẻ nhớ ngồi .Tích hợp chuẩn giao tiếp ATA ,phù hợp cho các ứng dụng về giải trí.
5.1.1 Các thành phần cơ bản của bộ xử lý
Các thanh ghi xử lý: Các thanh ghi xử lý của HCS12 hồn tồn giống với các thanh ghi xử lý
của họ vi điều khiển 68HC11/68HC12.
Hình 5.2: Các thanh ghi xử lý của họ vi điều khiển HCS12
· Thanh ghi tích lũy A: Là thanh ghi tích lũy 8 bit ,tất cả các phép tốn của ALU đều cĩ thể
thực hiện trên dữ liệu trong thanh ghi này. Một số thao tác đặc biệt chỉ cĩ thể thực hiện trên thanh ghi này, nĩ được sử dụng với tên là A hay AccA
· Thanh ghi tích lũy B: Là thanh ghi tích lũy 8 bit ,chức năng giống thanh ghi A. Nhưng cĩ
một số thao tác đặc biệt chỉ cĩ thể thực hiện trên thanh ghi A, mà khơng thể thực hiện trên thanh ghi B. Nĩ được sử dụng với tên là B hay AccB.
· Thanh ghi tích lũy D (A:B): Thanh ghi tích lũy 16 bit ,là sự kết hợp của thanh ghi A và B ,
khơng phải là thanh ghi riêng biệt . Được sử dụng với tên D hay AccD.
· Thanh ghi con trỏ X: Là thanh ghi địa chỉ 16-bit , sử dụng trong chế độ định địa chỉ số. Nĩ
cũng cĩ thể sử dụng như thanh ghi dữ liệu 16-bit, được sử dụng với tên là X hay IX.
· Thanh ghi con trỏ Y: Chức năng giống như thanh ghi X , được sử dụngvới tên là Y hay IY.
· Thanh ghi ngăn xếp con trỏ – SP (Stack Pointer) : Là thanh ghi 16-bit, chứa địa chỉ của ơ
nhớ khả dụng tiếp theo trong ngăn xếp .Được sử dụng với tên là SP.
· Thanh ghi Bộ đếm chương trình –PC (Program Counter): Là thanh ghi 16-bit, chứa địa chỉ
của lệnh kế tiếp. Được sử dụng với tên là PC.
· Thanh ghi điều kiện –CCR (Condition Code Register) : Là thanh ghi 8-bit trạng thái và
điều khiển. Được sử dụng với tên là CCR.
5.1.2 Các chế độ hoạt động : Cĩ 8 chế độ hoạt động chính
· Chế độ debug chạy nền- BDM :
+ Là chế độ đặc biệt , cho phép phần cứng bên ngịai ( thường gọi là BDM- Pod ) truy cập vào bên trong chip HCS12 thơng qua chân BKGD . Từ đĩ người dùng cĩ thể nạp chương trình vào vi điều khiển hay debug chương trình ngay cả khi vi điều khiển đang hoạt động.
+ Trong cả 8 chế độ hoạt động chính được nêu ở trên ,thì chế độ debug chạy nền này đều cĩ thể sử dụng được.
( a) : Kết nối giữa vi điều khiển với PC qua mạch BDM-Pod
+ Chuẩn jack cắm cáp cho chế độ debug-chạy nền:
(b) Cáp nối chuẩn (c) Cáp nối chuẩn mở rộng Hình 5.4: Chế độ debug chạy nền ( BDM: Background Debug Mode)
· Ngồi ra, họ vi điều khiển HCS12 cĩ 3 chế độ hoạt động tiết kiệm năng lượng: + Chế độ NGHỈ ( Stop mode)
+ Chế độ GIẢ-NGHỈ ( Pseudo Stop mode )
5.2 Vi điều khiển được sử dụng trong Luận văn - MC9S12DP512
Trong luận văn này ,tơi sử dụng vi điều khiển cĩ tên là MC9S12DP512 , thuộc dịng D của họ
HCS12 – là dịng được phát triển cho các ứng dụng trong lĩnh vực thuộc cơng nghệ ơtơ và
trong cơng nghiệp.
· Cĩ đầy đủ các chức năng cơ bản chung của họ vi điều khiển 16-bit HCS12 ( đã được trình bày ở chương 2 – phần I : Giới thiệu chung họ vi điều khiển HCS12 )
· Được đĩng gĩi theo kiểu chân LQFP – cĩ 112 chân , tầm nhiệt độ là: -40 -:-150 độ C · Tần số xung nhịp bus nội tối đa là 32 Mhz , cĩ tích hợp bộ PLL
· Bộ nhớ: 14 KB bộ nhớ RAM ; 4 KB bộ nhớ EEPROM ; 512 KB bộ nhớ FLASH
· 2 bộ giao tiếp nối tiếp bất đồng bộ ( SCI), 3 bộ giao tiếp nối tiếp đồng bộ ( SPI ),1 bộ IIC · 5 bộ CAN , hỗ trợ cả 2 chuẩn V2.0A và V2.0B; 1 bộ giao tiếp BDLC ( theo chuẩn J1850 ) · 8 kênh chức năng thời gian như: Bắt giữ ngõ vào , so sánh ngõ ra , đếm xung-sự kiện cổng , ngắt thời gian thực , WatchDog …
· 2 bộ ADC -16 kênh , độ phân giải10-bit ; 8 kênh trong mơ-đun điều rộng xung (PWM) · 4 Port xuất nhập số ( tổng cộng 29 chân) : Port A, Port B , Port K , Port E
5.2.1 Các Port xuất nhập đa dụng
· MC9S12DP512 cĩ tất cả là 12 port xuất nhập : Port A , Port B , Port D , Port E, Port H , Port J , Port K , Port M , Port S, Port P , Port T
· Tất cả các Port ngồi chức năng xuất nhập bình thường, cịn cĩ thêm các chức năng khác của vi điều khiển như:
+ Port A , Port B : cịn cĩ chức năng kết hợp với nhau để làm bus địa chỉ , và truyền dữ liệu song song 16-bit trong chế độ mở rộng.
+ Port H : cịn là chân giao tiếp của các mơ-đun khác như SPI , tạo ngắt từ phím nhấn + Port P: Cịn là các chân điều rộng xung , tạo ngắt từ phím nhấn
+ Port J : các chân giao tiếp IIC ,và tạo ngắt từ phím nhấn + Port M : là các chân giao tiếp CAN , BDLC
+ Port S: Là các chân giao tiếp SCI và SPI
+ Port T: Là các chân trong khối chức năng thời gian
+ Port K: Là các chân dùng để chọn các trang bộ nhớ trong vùng bộ nhớ Flash + Port D0 , D1: Là các chân ngõ vào tương tự của 2 bộ biến đổi ADC
+ Port E: cịn là các chân điều khiển cho hệ thống
· Mỗi Port sẽ cĩ nhiều thanh ghi điều khiển , để quyết định chức năng hoạt động của Port: là xuất nhập song song hay thực hiện chức năng riêng. Và khi đã chọn hoạt động ở chức năng riêng thì khơng phải là các port xuất nhập song song nữa.
· Tên của các thanh ghi điều khiển chức năng xuất nhập của các Port thường bắt đầu bằng từ “DDR” , từ cuối cùng là viết tắt tên của port.
Ví dụ : Thanh ghi điều khiển chức năng xuất nhập của Port A, Port B , Port H lần lượt cĩ tên
là: DDRA , DDRB , DDRH
+ Ghi giá trị 1 vào các bit của thanh ghi điều khiển : Qui định port tương ứng là Port xuất + Ghi giá trị 0 vào các bit của thanh ghi điều khiển : Qui định port tương ứng là Port nhập · Các thanh ghi chứa dữ liệu cho các port khi cĩ chức năng xuất nhập sẽ cĩ tên là: “ PT ”
Ví dụ như: PTA ( PortA ) , PTH ( Port H) , PTK ( Port K ) , PTP ( Port P ) ….
Ngồi ra: Cũng cĩ thể dùng tiền tố “ PORT” cho các port A, B, E , K để gọi tên các thanh ghi dữ liệu của các port này.
· Port A ,Port B :
- Trong chế độ mở rộng ( expanded mode ) , Port A đĩng vai trị là byte cao của địa chỉ / data 16-bit : A15/D15…A8/D
- Trong chế độ mở rộng ( expanded mode ) , Port A đĩng vai trị là byte cao của địa chỉ / data 16-bit : A7/D7…A0/D0
- Trong chế độ đơn chip ( Single chip mode ) , Port A và Port B chỉ là các port xuất nhập 8-bit bình thường
· Port E
- Port E thường được dùng để điều khiển bus , chọn bộ dao động thạc anh , phục vụ ngắt ngồi , chọn chế độ hoạt động cho vi điều khiển.
- Khi khơng dùng Port E cho các chức năng điều khiển , ta cũng cĩ thể sử dụng như một port xuất nhập bình thường . Hai hai thanh ghi cho chức năng xuất nhập là DDRE ( thanh ghi điều khiển ) và PTE ( thanh ghi dữ liệu )
Hình 5.7: Port E
khơng che được ( /XIRQ ) .
+ Chân PE1: Bình thường chỉ là chân nhập, ngồi ra cịn là chân ngõ vào yêu cầu ngắt che được ( /IRQ ) .
+ Chân PE2: Bình thường chỉ là chân nhập, ngồi ra khi vi điều khiển ở chế độ mở rộng , cịn là chân tạo tín hiệu Đọc/Viết ( Read/Write ).
+ Chân PE3: Bình thường là chân xuất nhập, ngồi ra khi vi điều khiển ở chế độ mở rộng thì trở thành chân tạo tín hiệu byte-thấp của kiểu truy cập bus (/LSTRB )