Thiết kế xe trộn bê tông
Trang 1Chương 19: VI XỬ LÝ TRONG ĐIỀU KHIỂN
Vào năm 1971 tập đoàn Intel đã giới thiệu 8080, bộ vi xử lý (micro-processor) thành công đầu tiên Sau đó không lâu Motorola, RCA, kế đến là MOS Thechnology và Zilog đã giới thiệu bộ vi xử lý tương tự: 6800, 1801, 6502 và Z80ø Bản thân các vi mạch (IC: integrated circuit) này tuy không có nhiều hiệu quả sử dụng nhưng khi là một phần của máy tính đơn board (single-board computer) chúng trở thành phần trung tâm trong các sản phẩm có ích dùng để nghiên cứu và thiết kế Các máy tính đơn board này, trong đó có D2 của Motorola, KIM-1 của MOS Technology và SDK-85 của Intel là đáng nhớ nhất, đã nhanh chóng xâm nhập vào các phòng thí nghiệm thiết kế của trường trung học, trường đại học và các công ty điện tử
Vào năm 1976 Intel giới thiệu bộ vi điều khiển (microcontroller) 8748, một chip tương tự như bộ vi xử lý và là chip đầu tiên trong họ vi điều khiển MCS-48 8748 là một vi mạch chứa trên 17000 transistor bao gồm một CPU, 1K byte EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thì 8-bit IC này và các IC khác tiếp theo của họ MCS-48 đã nhanh chóng trở thành chuẩn công nghiệp trong các ứng dụng hướng điều khiển (control-oriented application) Việc thay thế các thành phần cơ điện trong các sản phẩm như máy giặt và các bộ điều khiển đèn giao thông là những ứng dụng phổ biến ban đầu Các sản phẩm khác mà trong đó bộ vi điều khiển được tìm thấy bao gồm xe ô tô, thiết bị công nghiệp, các sản phẩm tiêu dùng và các ngoại vi của máy tính (bàn phím của IBM-PC là một thí dụ sử dụng bộ vi điều khiển trong các thiết kế tối thiểu thành phần)
Trang 2Độ phức tạp, kích thước và khả năng của bộ vi điều khiển được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bố chip 8051, bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51 So với 8048, chip 8051 chứa trên 60000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, một port nối tiếp và 2 bộ định thì 16-bit, một lượng mạch đáng chú ý trong một IC đơn Các thành viên mới được thêm vào cho họ MCS-51 và các biến thể ngày nay gần như có gấp đôi đặc trưng này Tập đoàn Siemens, nguồn sản xuất thứ hai các bộ vi điều khiển thuộc họ MCS-51 cung cấp chip SAB80515, một cải tiến của 8051 chứa trong một vỏ 68 chân, có 6 port xuất nhập 8-bit,
13 nguồn tạo ra ngắt và một bộ biến đổi A/D 8-bit với 8 kênh ngõ vào Họ 8051 là một trong những họ điều khiển 8-bi t mạnh và linh hoạt nhất, đã trở thành bộ vi điều khiển hàng đầu trong những năm gần đây
Ở đề tài này em sử dụng chip vi điều khiển (có thể gọi là chip
vi xử lý do ít thói quen Mặt khác, hiện nay ít có sự phân định rõ giữa hai thuật ngữ này) AT 8951, đây cũng thuộc MCS –51 Về cơ bản cấu tạo của AT9851 cũng giống như 8051, nhưng AT9851 là một hệ vi tính 8-bit đơn chip CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp và có 4K byte bộ nhớ ROM Flash xóa được/lập trình được Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của Atmel
8.2.1 Tóm tắt phần cứng AT8951
Chip AT 8951 cũng tương thích với tập lệnh và các chân ra của chuẩn công nghiệp MCS-51 Flash trên chip này cho phép bộ nhớ chương trình được lập trình lại trên hệ thống hoặc bằng bộ lập trình bộ nhớ không mất nội dung quy ước Bằng cách kết hợp một CPU linh hoạt 8-bit với Flash trên một chip đơn thể, Atmel 89C51 là một hệ vi tính 8-bit đơn chip mạnh cho ta một
Trang 3giải pháp có hiệu quả và rất linh hoạt đối với các ứng dụng điều khiển
AT8951 có các đặc trưng chuẩn sau:
4K byte ROM Flash
128 byte RAM
32 đường xuất nhập
Hai bộ định thời/đếm 16-bit
Một cấu trúc ngắt hai mức ưu tiên và 5 nguyên nhân ngắt
Một port nối tiếp song công
Mạch dao động và tạo xung clock trên chip
Ngoài ra AT8951 được thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng phần mềm Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao động cung cấp xung clock nhằm vô hiệu hóa các hoạt động khác của chip cho đến khi có reset cứng tiếp theo
8.2.1.1 Cấu hình chân ra:
Vcc chân cung cấp nguồn
GND chân nối đất (0V).
Port 0
Port 0 là port xuất nhập 8-bit hai chiều cực D hở Khi làm nhiệm vụ là port xuất, mỗi chân của port có thể hút dòng của 8 ngõ vào TTL Khi các logic 1 được ghi vào các chân của port 0,
Trang 4các chân này có thể được sử dụng làm các ngõ vào có tổng trở cao
Port 0 còn được cấu hình làm bus địa chỉ (byte thấp) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài và bộ nhớ chương trình ngoài Trong chế độ đa hợp này, port 0 có các điện trở kéo lên bên trong
Port 0 cũng nhận các byte mã trong khi lập trình cho Flash và xuất các byte mã trong khi kiểm tra chương trình Các điện trở kéo lên bên ngoài được cần đến trong khi kiểm tra chương trình
Port 1
Port1 là port xuất nhập 8-bit hai chiều có các điện trở kéo lên bên trong Các bộ đệm xuất của port 1 có thể hút và cấp dòng với 4 ngõ vào TTL Khi các logic 1 được ghi lên các chân của port1, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như các ngõ vào Khi làm nhiệm vụ của port nhập, các chân của port 1 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong
Port1 cũng nhận byte địa chỉ thấp trong thời gian lập trình cho Flash và kiểm tra chương trình
Port 2
Port 2 của port xuất nhập 8-bit hai chiều có các điện trở kéo lên bên trong Các bộ đệm xuất của port 2 có thể hút và cấp dòng cho với 4 ngõ vào TTL Khi các logic 1 được ghi lên các chân port 2, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như các ngõ vào Khi làm nhiệm vụ của port nhập, các chân của port 2 đang được kéo
Trang 5xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong
Port 2 tạo ra các byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16-bit (MOVX
@DPTR) Trong ứng dụng này, port 2 sử dụng các điện trở kéo lên bên trong khi phát các bit 1 Trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 8-bit (MOVX @Ri), port 2 phát các nội dung của thanh ghi chức năng đặc biệt P2
Port 2 cũng nhận các bit địa chỉ cao và vài tín hiệu điều khiển trong thời gian lập trình cho Flash và kiểm tra chương trình
Port 3
Port 3 là port xuất nhập 8-bit hai chiều có các điện trở kéo lên bên trong Các bộ đệm xuất của port 3 có thể hút và cấp dòng với 4 ngõ vào TTL Khi các logic 1 được ghi lên các chân port 3, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như các ngõ vào Khi làm nhiệm vụ của port nhập, các của port 3 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong
Port 3 còn được sử dụng làm các chức năng khác của AT8951 các chức năng này được liệt kê như sau:
Chân của port Chức năng
P3.0 RxD (ngõ vào của port nối tiếp)
P3.1 TxD (ngõ ra của port nối tiếp)
P3.2 INT 0 (ngõ vào ngắt ngoài 0)
Trang 6P3.3 INT 1 (ngõ vào ngắt ngoài 1).
P3.4 T0 (ngõ vào bên ngoài của bộ định thời 0) P3.5 T1 (ngõ vào bên ngoài của bộ định thời 1) P3.6 WR (điều khiển ghi bộ nhớ dữ liệu ngoài) P3.7 RD (điều khiển đọc bộ nhớ dữ liệu ngoài) Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và kiểm tra chương trình
RST
Ngõ vào reset Mức cao trên chân này trong hai chu kỳ máy trong khi bộ dao động đang hoạt động sẽ reset AT8951
ALE/ PROG
Xung của ngõ ra cho phép chốt địa chỉ ALE (address latch enable) cho phép chốt byte thấp của địa chỉ trong thời gian truy xuất bộ nhớ ngoài Chân này cũng được dùng làm ngõ vào xung lập trình (PROG) trong thời gian lập trình cho Flash
Khi hoạt động bình thường, xung của ALE luôn có tần số bằng 1/6 tần số của mạch dao động trên chip, có thể được sử dụng cho các mục đích định thời từ bên ngoài và tạo xung clock Tuy nhiên cần lưu ý là một xung ALE sẽ bị bỏ qua trong mỗi một chu kỳ truy xuất bộ nhớ dữ liệu ngoài
Khi cần, hoạt động cho phép chốt byte thấp của địa chỉ sẽ được vô hiệu hóa bằng cách set bit 0 của thanh ghi chức năng đặc biệt có địa chỉ byte là 8EH Khi bit này được set, ALE chỉ tích cực trong thời gian thực thi lệnh MOVX hoặc MOVC Ngược lại chân này sẽ được kéo lên mức cao Việc set bit không cho phép hoạt động chốt byte thấp của địa chỉ sẽ không có tác
Trang 7dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trình ngoài
PSEN
Chân cho phép bộ nhớ chương trình PSEN (program store enable) điều khiển truy xuất bộ nhớ chương trình ngoài Khi AT8951 đang thực thi chương trình trong bộ nhớ chương trình ngoài, PSEN tích cực hai lần cho mỗi chu kỳ máy, ngoại trừ trường hợp tác động của PSEN bị bỏ qua cho mỗi lần truy xuất bộ nhớ dữ liệu ngoài
EA /Vpp
Chân cho phép truy xuất bộ nhớ ngoài EA (external access enable) phải được nối với GND để cho phép chip vi điều khiển tìm nạp lệnh từ các vị trí nhớ của bộ nhớ chương trình ngoài, bắt đầu từ địa chỉ 0000H cho đến FFFFH Tuy nhiên cần lưu ý là nếu bit khóa 1 (lock bit 1) được lập trình, EAsẽ được chốt bên trong khi reset
EA nên nối với Vcc để thực thi chương trình bên trong chip Chân EA/Vpp còn nhận điện áp cho phép lập trình Vpp trong thời gian lập trình cho Flash, điện áp này cấp cho các bộ phân có yêu cầu điện áp 12V
XTAL1
Ngõ vào đến mạch khuếch đại đảo của mạch dao động và ngõ vào đến mạch tạo xung clock bên trong chip
XTAL2
Ngõ ra từ mạch khuếch đại đảo của mạch dao động