Chương 1: GIỚI THIỆU VỀ CÁC HỌ VI XỬ LÝ VÀ THÔNG DỤNG

Chia sẻ: Do Van Can | Ngày: | Loại File: PDF | Số trang:25

1
569
lượt xem
248
download

Chương 1: GIỚI THIỆU VỀ CÁC HỌ VI XỬ LÝ VÀ THÔNG DỤNG

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Lịch sử phát triển của bộ vi xử lí và bộ vi điều khiển Sự ra đời và phát triển nhanh chóng của kỹ thuật vi điện tử mà đặc trưng là kỹ thuật vi xử lí đã tạo ra một bước ngoặt quan trọng trong sự phát triển của khoa học tính toán, điều khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kỹ thuật, đặc biệt là lĩnh vực Tin học và Tự động hóa. Năm 1971,...

Chủ đề:
Lưu

Nội dung Text: Chương 1: GIỚI THIỆU VỀ CÁC HỌ VI XỬ LÝ VÀ THÔNG DỤNG

  1. Chương 1: Giới thiệu 1 Giáo trình vi xử lý Chương 1 GIỚI THIỆU VI XỬ LÍ – VI ĐIỀU KHIỂN 1.1. GIỚI THIỆU VỀ CÁC HỌ VI XỬ LÝ VÀ THÔNG DỤNG 1.1.1. Lịch sử phát triển của bộ vi xử lí và bộ vi điều khiển Sự ra đời và phát triển nhanh chóng của kỹ thuật vi điện tử mà đặc trưng là kỹ thuật vi xử lí đã tạo ra một bước ngoặt quan trọng trong sự phát triển của khoa học tính toán, điều khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan trọng trong tất cả các lĩnh vực của cuộc sống và khoa học kỹ thuật, đặc biệt là lĩnh vực Tin học và Tự động hóa. Năm 1971, hãng Intel đã cho ra đời bộ vi xử lí (microprocessor) đầu tiên trên thế giới tên gọi là Intel-4004/4bit , nhằm đáp ứng nhu cầu cấp thiết của một công ty kinh doanh là hãng truyền thông BUSICOM. Intel-4004 là kết quả của một ý tưởng quan trọng trong kỹ thuật vi xử lí số. Đó là một kết cấu logic mà có thể thay đổi được chức năng của nó bằng chương trình ngoài chứ không phát triển theo hướng tạo ra một cấu trúc cứng chỉ thực hiện một số chức năng nhất định như trước đây. Sau đó, các bộ vi xử lí mới liên tục được đưa ra thị trường và ngày càng được phát triển, hoàn thiện hơn trong các thế hệ sau : Vào năm 1972, hãng Intel đưa ra bộ vi xử lí 8-bit đầu tiên với tên Intel-8008/8bit. Từ 1974 đến 1975 , Intel chế tạo các bộ vi xử lí 8-bit 8080 v 8085A. Cũng vào khoảng thời gian này, một loạt các hãng khác trên thế giới cũng đã cho ra đời các bộ vi xử lí tương tự như : 6800 của Motorola với 5000 tranzitor, Signetics 6520, 1801 của RCA, kế đến là 6502 của hãng MOS Technology và Z80 của hãng Zilog. Năm 1978 xuất hiện Intel 8086 là loại bộ xi xử lý 16 bit với 29.000 tranzitor, Motorola 68000 tích hợp 70.000 tranzitor, APX 432 chứa 120.000 tranzitor. Bộ vi xử lý của Hewlet Pakard có khoảng 450.000 tranzitor. Từ năm 1974 đến 1984 số tranzitor tích hợp trong một chip tăng khoảng 100 lần. Năm 1983, Intel đưa ra bộ vi xử lý 80286 dung trong các máy vi tinh họ AT (Advanced Technology). 80286 sử dụng I/O 16 bit, 24 đường địa chỉ và không gian nhớ địa chỉ thực 16MB. Năm 1987, Intel đưa ra bộ vi xử lý 80386 32-bit. Năm 1989 xuất hiện xuất hiện bộ vi xử lý Intel 80486 là cải tiến của Intel 80386 với bộ nhớ ẩn và mạch tính phép toán đại số dấu phẩy động. Năm 1992, xuất hiện Intel 80586 còn gọi là Pentium 64 bit chứa 4 triệu tranzitor. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  2. Chương 1: Giới thiệu 2 Giáo trình vi xử lý Độ phức tạp, sự gọn nhẹ về kích thước và khả năng của các 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 60.000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16-bit – một số lượng mạch đáng chú ý trong một IC đơn. Từ các bộ vi xử lý ban đầu chỉ là các bộ xử lý trung tâm trong một hệ thống, không thể hoạt động nếu thiếu các bộ phận như RAM, ROM, bo mạch chủ... các hãng đã phát triển các bộ vi xử lý này lên thành các bộ vi điều khiển để phục vụ các mục đích riêng biệt, khác nhau trong công nghiệp. Một bộ vi điều khiển là một hệ vi xử lí thật sự được tổ chức trong một chip (trong một vỏ IC) bao gồm một bộ vi xử lí (microprocessor), bộ nhớ chương trình (ROM), bộ nhớ dữ liệu (RAM), tuy không bằng dung lượng RAM ở các máy vi tính nhưng đây không phải là một hạn chế vì các bộ vi điều khiển được thiết kế cho một mục đích hoàn toàn khác, ngoài ra trên chip còn có bộ xử lý số học-logic (ALU) cùng với các thanh ghi chức năng, các cổng vào/ra, cơ chế điều khiển ngắt, truyền tin nối tiếp, các bộ định thời... Hiện nay, các bộ vi điều khiển được sử dụng rất rộng rãi và ngày càng được chuẩn hóa để có thể sử dụng rộng rãi trong các ngành công nghiệp, có mặt trong nhiều máy móc, trong các hàng tiêu dùng. 1.1.2. Ưu và khuyết điểm của các bộ vi điều khiển Các công việc được thực hiện bởi các bộ vi điều khiển thì không mới. Điều mới là các thiết kế hiện thực với ít thành phần hơn so với các thiết kế trước đó. Các thiết kế trước đó đòi hỏi phải vài chục hoặc vài trăm IC để hiện thực nay chỉ cần một ít thành phần trong đó bao gồm bộ vi điều khiển. Số thành phần được giảm bớt, hiệu quả trực tiếp của tính khả lập trình của các bộ vi điều khiển và độ tích hợp cao trong công nghệ chế tạo vi mạch, thường chuyển thành thời gian phát triển ngắn hơn, giá thành khi sản xuất thấp hơn, công suất tiêu thụ thấp hơn và độ tin cậy cao hơn. Vấn đề ở đây là tốc độ. Các giải pháp dựa trên bộ vi điều khiển không bao giờ nhanh bằng giải pháp dựa trên các thành phần rời rạc. Những tình huống đòi hỏi phải đáp ứng thật nhanh (cỡ nsec) đối với các sự kiện (thường chiếm thiểu số trong các ứng dụng) sẽ được quản lý tồi khi dựa vào các bộ vi điều khiển. Tuy nhiên trong vài ứng dụng, đặc biệt là các ứng dụng liên quan đến con người, các khoảng thời gian trễ tính bằng nsec, μsec hoặc thậm chí msec là không quan trọng. Việc giảm bớt các thành phần là một điều lợi như đã đề cập, các thao tác trong chương trình điều khiển làm cho thiết kế có thể thay đổi bằng cách thay đổi phần mềm. Điều này có ảnh Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  3. Chương 1: Giới thiệu 3 Giáo trình vi xử lý hưởng tối thiểu đến chu kỳ sản xuất. Do đó các bộ vi điều khiển có thể được ứng dụng rộng rãi trong các ứng dụng phục vụ con người. Để có thể hiểu rõ hơn về các bộ vi điều khiển, chúng ta sẽ tìm hiểu về một số các họ vi điều khiển của một số hãng điện tử điển hình đang được sử dụng rộng rãi trong khoa học kỹ thuật và đời sống. 1.2. KHÁI QUÁT HỌ 8051 1.2.1. Họ MCS-51™ MCS-51™ là một họ IC vi điều khiển do Intel phát triển và sản xuất. Một số nhà sản xuất được phép cung cấp các IC tương thích với các sản phẩm MCS-51™ của Intel là Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel… Các IC của họ MCS-51™ có các đặc trưng chung như sau: 4 port I/O 8 bit Giao tiếp nối tiếp 64K không gian bộ nhớ chương trình mở rộng 64K không gian bộ nhớ dữ liệu mở rộng Một bộ xử lý luận lý (thao tác trên các bit đơn) 210 bit được địa chỉ hóa Bộ nhân/chia 4 μs. Ngoài ra, tùy theo số hiệu sản xuất mà chúng có những khác biệt về bộ nhớ và bộ định thời/bộ đếm như trong bảng so sánh dưới đây: Số hiệu sản Bộ nhớ chương Bộ nhớ dữ liệu Số bộ định thời xuất trình trên chip trên chip (bộ đếm) 8031 0K 128 byte 2 8051 4K ROM 128 byte 2 8751 4K EPROM 128 byte 2 8951 4K FLASH 128 byte 2 8032 0K 256 byte 3 8052 8K ROM 256 byte 3 8752 8K EPROM 256 byte 3 8952 8K FLASH 256 byte 3 Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  4. Chương 1: Giới thiệu 4 Giáo trình vi xử lý 1.2.2. Giới thiệu AT89C51 AT89C51 là một Microcomputer 8 bit, loại CMOS, có tốc độ cao và công suất thấp với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với công nghệ bộ nhớ không bay hơi mật độ cao của hãng Atmel, và tương thích với chuẩn công nghiệp của 80C51 và 80C52 về chân ra và bộ lệnh. Vì lý do đó, kể từ đây về sau ta sẽ dùng thuật ngữ “80C51” (hoặc "8051"). Hình 1.2: Sơ đồ khối của AT89C51 Những đặc trưng của AT89C51 Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  5. Chương 1: Giới thiệu 5 Giáo trình vi xử lý + Tương thích với các sản phẩm MCS-51 + 4KByte bộ nhớ Flash có thể lập trình lại với 1000 chu kỳ đọc/xoá + Hoạt động tĩnh đầy đủ: 0Hz đến 24MHz + Khoá bộ nhớ chương trình ba cấp + 128 x 8 bit RAM nội + 32 đường xuất-nhập lập trình được (tương ứng 4 port) + Hai timer/counter 16 bit + Một port nối tiếp song công lập trình được + Mạch đồng hồ và bộ dao động trên chip Cấu hình chân của AT89C51 như sau: Hình 1.3: Sơ đồ chân của AT89C51 Như vậy AT89C51 có tất cả 40 chân. Mỗi chân có chức năng như các đường I/O (xuất/nhập), trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động như một đường I/O hoặc như một đường điều khiển hoặc như thành phần của bus địa chỉ và bus đữ liệu. 1.2.3. Mô tả xuất nhập VCC (chân 40) Chân cấp nguồn. GND (chân 20) Chân nối đất. Port 0 Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  6. Chương 1: Giới thiệu 6 Giáo trình vi xử lý Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Khi mức 1 được viết vào các chân của port 0, các chân này có thể được dùng như là các ngõ nhập tổng trở cao. Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình ngoài. Ở chế độ này, P0 có các điện trở pullup bên trong. Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần có các điện trở pullup bên ngoài khi thực hiện việc kiểm tra chương trình. Port 1 Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như là các ngõ nhập. Nếu đóng vai trò là các ngõ nhập, các chân của port 1 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do các điện trở pullup bên trong. Port 2 Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong. Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong. Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX @DPTR). Trong ứng dụng này, nó dùng các điện trở pullup nội "mạnh" khi phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bit (MOVX @RI), port 2 phát ra 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 cao của địa chỉ và một vài tín hiệu điều khiển khi lập trình và kiểm tra Flash. Port 3 Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội bên trong. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  7. Chương 1: Giới thiệu 7 Giáo trình vi xử lý Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào TTL. Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 3 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong. Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới đây: Bảng :Các chức năng chuyển đổi trên Port 3 Chân Tên Các chức năng chuyển đổi P3.0 RXD Port nhập nối tiếp P3.1 TXD Port xuất nối tiếp P3.2 INT0 Ngắt 0 bên ngoài P3.3 INT1 Ngắt 1 bên ngoài P3.4 T0 Ngõ vào Timer/Counter 0 P3.5 T1 Ngõ vào Timer/Counter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 Xung đọc bộ nhớ dữ liệu ngoài RD RST (chân 9) Ngõ vào reset. Một mức cao trên chân này khoảng hai chu kỳ máy trong khi bộ dao động đang chạy sẽ reset thiết bị. ALE/ PROG ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ ngoài. Chân này cũng là ngõ nhập xung lập trình ( PROG ) khi lập trình Flash. Khi hoạt động bình thường, ALE được phát với một tỷ lệ không đổi là 1/6 tần số bộ dao động và có thể được dùng cho các mụch đích timing và clocking bên ngoài. Tuy nhiên, lưu ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài. Nếu muốn, hoạt động ALE có thể cấm được bằng cách set bit 0 của SFR tại địa chỉ 8Eh. Nếu bit này được set, ALE chỉ dược hoạt động khi có một lệnh MOVX hoặc MOVC. Ngược lại, chân này được kéo lên cao bởi các điện trở pullup "nhẹ". Việc set bit cấm-ALE không có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài. PSEN Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  8. Chương 1: Giới thiệu 8 Giáo trình vi xử lý PSEN (Program Store Enable) là xung đọc bộ nhớ chương trình ngoài. Khi AT89C52 đang thi hành mã (code) từ bộ nhớ chương trình ngoài, PSENđược kích hoạt hai lần mỗi chu kỳ máy, nhưng hai hoạt động PSEN sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài. EA /Vpp EA (External Access Enable) phải được nối với GND để cho phép thiết bị đọc code từ bộ nhớ chương trình ngoài có địa chỉ từ 0000H đến FFFFH. Tuy nhiên, lưu ý rằng nếu bit khoá 1 (lock-bit 1) được lập trình, EA sẽ được chốt bên trong khi reset. EA phải được nối với Vcc khi thi hành chương trình bên trong. Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đó áp lập trình 12V được chọn). XTAL1 và XTAL2 XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao động nghịch được cấu hình để dùng như một bộ dao động trên chip. Hình 1.4: Các kết nối của bộ dao động Không có yêu cầu nào về duty cycle của tín hiệu xung ngoài,vì ngõ nhập nối với mạch tạo xung nội là một flip-flop chia đôi, nhưng các chỉ định về thời gian high và low, các mức áp tối đa và tối thiểu phải được tuân theo. Các đặc trưng khác sẽ được trình bày một cách chi tiết hơn ở những phần sau. 1.3. HỆ VI XỬ LÝ Z-80 1.3.1. Cấu trúc CPU - Bộ nhớ chính gồm ROM & RAM. - Các bộ giao tiếp (Input / Output Adapter) - Các Thiết bị ngoại vi ( Peripheral). Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  9. Chương 1: Giới thiệu 9 Giáo trình vi xử lý Bus : Data Addr Ctrl Hình 1.5: Sơ đồ khối của vi xử lý Z-80 CPU Là khối liên kết trung tâm, thực hiện các phép toán và điều khiển các liên kết còn lại thông qua việc thi hành Lệnh: Lệnh là một giá trị nhị phân tượng trưng (mã hóa) cho 1 phép tính mà CPU thực hiện được, giá trị này do nhà sản xuất qui định. Dựa vào số bit của Data Bus để phân loại CPU: - CPU 8 bit: 8080, 8085 của Intel 6800, 6802 của Intel Z80 của Zilog - CPU có Data Bus lớn hơn 8 bit: 16 bit: 8088, 8086, 80286 của Intel 32 bit: 80386, 80486 của Intel 64 bit: Pentium Ngoài ra theo xu thế hiện nay, người ta có thể phân loại CPU theo 2 hướng: CISC ( Complete Instruction Set Computer) và RISC ( Reduced Instruction Set Computer) Gồm 3 phần chính: - Tập thanh ghi ( Register Set). - Bộ số học và Logic ( Arithmetic & Logic Unit). - Khối điều khiển và giải mã lệnh. Bộ nhớ chính : Chứa số liệu và Lệnh của CPU Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  10. Chương 1: Giới thiệu 10 Giáo trình vi xử lý Các bộ giao tiếp : Là những phần tử mạch trung gian cho phép CPU điều khiển các thiết bị ngoại vi (bàn phím, máy in, đèn chỉ thị, … ). a. Tập thanh ghi: • Chức năng: Đóng vai trò là những ô nhớ nằm bên trong CPU. Mỗi thanh ghi được nhà sản xuất qui định cho người sử dụng bằng 1 tên gọi (A, B, C, …). Các thanh ghi là cơ sở (nơi chứa số liệu) cho đa số các phép toán mà CPU thực hiện. • Phân loại: + Các thanh ghi địa chỉ: liên quan đến Addr Bus. + Các thanh ghi dữ liệu: liên quan đến Data Bus. • Các thanh ghi thường gặp trong CPU 8 bit: a1. Thanh ghi PC ( Program Counter) + Số bit của PC = Số bit của Addr Bus. + PC chứa địa chỉ của Lệnh mà CPU đang thực hiện. + PC tự động tăng ghi lên 1 sau mỗi byte thực hiện. Thường khi mới Reset CPU giá trị thanh ghi PC = Hằng số. *** Nhận xét: - Các lệnh mà người sử dụng muốn CPU thực hiện tuần tự theo thời gian phải được đặt theo thứ tự tăng dần của địa chỉ trong bộ nhớ. - Sự thay đổi giá trị của thanh ghi PC bởi một nguyên nhân nào đó chúng sẽ làm chuyển hướng việc thi hành Lệnh của CPU. a2. Các thanh ghi đa năng ( General Purpose): - Số bit bằng độ rộng của Data Bus. - Các thanh ghi này thường được dùng trong các lệnh của CPU (tính toán, chuyển dời dữ liệu, …). - Trong số các thanh ghi đa năng, có 1 thanh ghi đặc biệt gọi là bộ tích lũy (gọi là thanh ghi A) – Accumulator. Đặc biệt ở chỗ là những phép toán chỉ tiến hành được trên thanh ghi A mà không thực hiện được trên các thanh ghi khác. a3. Thanh ghi Cờ ( Flag – Condition): - Thanh ghi này thường không tham gia vào các phép toán nhưng nó phản ánh một giá trị đặc biệt của kết quả thu được sau phép toán đó. - Mỗi bit trong thanh ghi có ý nghĩa độc lập và thường được gọi là 1 cờ. + Các Cờ thường gặp: Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  11. Chương 1: Giới thiệu 11 Giáo trình vi xử lý *Cờ Z (Zero): 1 0 Z= nếu kết quả = 0 1 số khác 0 *Cờ C (Carry): 1 Có bit nhớ (phép +) hoặc có bit mượn (-) Z= nếu 0 Ngược lại Các bit nhớ hoặc mượn được xét tại vị trí MSB. *Cờ H (Halt): Giống như Cờ C nhưng vị trí mà nó phản ánh (xét đến) là bit thứ 4 (bit 3) của kết quả. Cờ này ảnh hưởng đến các phép tính cho số BCD. *Cờ S (Sign): Quan điểm về số (+) và (-) trong hệ μP: Định nghĩa: Nếu xem các số đang thao tác là 1 số có dấu và nếu xét trong một độ dài hữu hạn bit thì 2 số đối nhau được định nghĩa như sau: X + Y = 0. Ví dụ : Nếu xét theo quan điểm trên thì FF = - 1 vì FF + 01 = 00 Người ta chứng minh được : - X = X + 1 Nhận xét: MSB = 0 Tầm số (+) Nếu Thì số đó MSB = 1 Tầm số (-) Với một số nhị phân n bit mà nhìn như số có dấu, người ta chia thành 2 tầm số như nhận xét trên. Ví dụ: 00 7F: biểu diễn số +0 +127 80 FF: biểu diễn số -128 -1 Giá trị của Cờ S thực chất là giá trị MSB của kết quả, do đó nếu trong trường hợp tính toán với số có dấu thì Cờ S được dùng để xác định xem số đó thuộc tầm (+) hay (-). *Cờ O (OverFlow): Cờ O chỉ sử dụng trong các phương trình tính toán với số có dấu. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  12. Chương 1: Giới thiệu 12 Giáo trình vi xử lý 1 : Phản ánh hiện tượng tràn (quá tầm vực của số đó) O= 0 : Nếu ngược lại Ví dụ : 0100 0000 (64) 0100 0001 (65) 1000 0001 (129 > 127 thuộc tầm số (+) ). Cờ O = 1. a4. Thanh ghi chỉ số: - Nó được dùng trong phép định vị chỉ số. a5. Nhà hầm và thanh ghi con trỏ nhà hầm Stack Pointer (SP): • Khái niệm : Nhà hầm là một vùng nhớ RAM được CPU chọn làm nơi chứa tạm các giá trị của các thanh ghi khi cần thiết (Khi thi hành lệnh cất thanh ghi) và khi phục hồi lại chúng. • Cơ chế hoạt động : + Nhà hầm được quản lý theo cơ chế địa chỉ: Địa chỉ của vùng nhớ RAM được dùng làm nhà hầm phải được nạp vào thanh ghi SP. Do đó 1 lệnh nào đó có liên quan đến nhà hầm sẽ được thực hiện theo địa chỉ này. Ví dụ: lệnh cất thanh ghi A thì CPU sẽ đem nội dung của thanh ghi A vào ô nhớ có địa chỉ nằm trong SP (ký hiệu là [SP] ). + Nhà hầm hoạt động theo nguyên tắc giảm, nghĩa là sau lệnh cất nội dung của một thanh ghi 8 bit giá trị của thanh ghi SP sẽ giảm 1. + Phục hồi lại giá trị của thanh ghi đem cất trước đó bằng cách đem nội dung ô nhớ có địa chỉ chứa trong SP +1 về lại thanh ghi A sau đó tăng SP lên 1. + Nhà hầm hoạt động theo nguyên tắc LIFO ( Last In First Out), nghĩa là thanh ghi nào cất vào trước sẽ được lấy ra sau. 1.3.2. Hệ thống Bus : Address Bus: Là Bus 1 chiều do CPU gởi ra. Số bit của Addr sẽ qui định số ô nhớ mà CPU truy xuất được hay còn gọi là khả năng định vị (mapping) của CPU. Data Bus: Là Bus 2 chiều, là nơi chuyển lệnh hoặc số liệu trong quá trình hoạt động của CPU. Control Bus: Mỗi đường là 1 chiều (nhưng quan điểm theo kiểu tổng quát là 2 chiều), nó chứa các tín hiệu của CPU để điều khiển các linh kiện xung quanh. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  13. Chương 1: Giới thiệu 13 Giáo trình vi xử lý Hình 1.6: Sơ đồ cấu trúc chân Z -80 hãng NEC A0 ÷ A15 : 16 bit của Addr Bus (3 trạng thái) Có 216B = 64 KB ô nhớ. • D0 ÷ D7 : 8 bit của Data Bus (2 chiều – 3 trạng thái). • Điều kiện về điện : + CK (Clock): Sóng vuông (biên độ TTL) f ≤ 4 MHz . + RESET: có độ rộng khoảng vài chục μs, lúc reset thì PC = 0000h • CPU điều khiển các linh kiện ngoài: + RD (ReaD)= 0: Data Bus là vào đối với CPU. + WR (WRite) : WR = 0 : Data Bus là ra đối với CPU. Lưu ý : Đọc lệnh RD = 0 Xác định Thi hành lệnh : RD = 0 hoặc WR = 0 • MERQ (MEmory ReQuest): + Khi MERQ = 0 đảm bảo 1 giá trị ổn định trên Addr Bus. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  14. Chương 1: Giới thiệu 14 Giáo trình vi xử lý MERQ = 0: Đọc lệnh từ bộ nhớ. + Cụ thể MERQ = 1: Thi hành lệnh thuộc nhóm LD .+ IORQ ( In Out ReQuest): - Chân này = 0: Báo hiệu 1 giá trị ổn định trên Addr Bus. = 0: Thi hành lệnh thuộc nhóm IN / OUT. - Cụ thể = 1: Trạng thái phục vụ ngắt. • Nhóm chân thông báo trạng thái CPU: + M1 ( Machine Cycle 1 ): 16 States MC1 MC2 M1 = 0 : Nếu CPU đang ở chu kỳ máy 1. Nhận xét: M1 và MERQ có thể cùng = 0. + HALT = 0: Báo hiệu CPU ngưng hoạt động. Lúc này CPU chỉ hoạt động lại khi có tín hiệu Reset hoặc có một hiện tượng ngắt xảy ra. + RFSH ( ReFreSH): Xem giản đồ thời gian. • Nhóm chân điều khiển trạng thái của CPU: + WAIT = 0 : CPU sẽ kéo dài việc thi hành hoặc đọc lệnh hiện tại cho đến khi WAIT = 1. + INT ( Interrupt) + NMI ( Non Maskable Int ) + BUSRQ ( BUS ReQuest) = 0: CPU sẽ đưa tất cả các chân lên 3 trạng thái và thông báo bằng tín hiệu BUSACK ( ACKnownlegde) = 0. * Tập thanh ghi của Z-80: - Các thanh ghi đa năng: A, B, C, D, E, H, L. Trong đó A là bộ tích lũy và 6 thanh ghi còn lại có thể ghép cặp và dùng như 3 thanh ghi 16 bit BC, DE, HL. - Tập thanh ghi phụ ( có dấu phẩy): A’, B’, … Cất hết dữ liệu của các thanh ghi đa năng khi cần thiết ( như một nhà hầm nhỏ ). Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  15. Chương 1: Giới thiệu 15 Giáo trình vi xử lý - Thanh ghi chỉ số: IX, IY. - Thanh ghi I: Dùng trong cơ chế xử lý ngắt. 1.4. VI ĐIỀU KHIỂN AVR Vi điều khiển AVR (Atmel Norway design) thuộc họ vi điều khiển Atmel, nó là họ Vi điều khiển khá mới trên thị trường cũng như đối với người sử dụng. Đây là họ Vi Điều Khiển được chế tạo theo kiến trúc RISC (Reduced Intruction Set Computer) có cấu trúc khá phức tạp. Ngoài các tính năng như các họ VĐK khác, nó còn tích hợp nhiều tính năng mới rất tiện lợi cho người thiết kế và lập trình. Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cần lập trình cho vi điều khiển, chúng ta thường dùng những ngôn ngữ bậc cao HLL (Hight Level Language) để lập trình ngay cả với loại chip xử lí 8 bit trong đó ngôn ngữ C là ngôn ngữ phổ biến nhất. Tuy nhiên khi biên dịch thì kích thước đoạn mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly. Hãng Atmel nhận thấy rằng cần phải phát triển một cấu trúc đặc biệt cho ngôn ngữ C để giảm thiểu sự chênh lệch kích thước mã đã nói trên. Và kết quả là họ vi điều khiển AVR ra đời với việc làm giảm kích thước đoạn mã khi biên dịch và thêm vào đó là thực hiện lệnh đúng đơn chu kỳ máy với 32 thanh ghi tích lũy và đạt tốc độ nhanh hơn các họ vi điều khiển khác từ 4 đến 12 lần. Vì thế nghiên cứu AVR là một đề tài khá lý thú và giúp cho sinh viên biết thêm một họ vi điều khiển vào loại mạnh nhất hiện nay. 1.4.1. Phân loại AVR • AT90S8535: Không có lệnh nhân hoặc chia trên thanh ghi. AT 90S8535 là bộ vi điều khiển CMOS 8 bit tiêu thụ điện năng thấp dựa trên kiến trúc RISC (Reduced Intruction Set Computer). Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì xung nhịp, vì thế tốc độ xử lý dữ liệu có thể đạt đến 1 triệu lệnh trên giây ở tần số 1 Mhz. Vi Điều Khiển này cho phép người thiết kế có thể tối ưu hoá mức độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lí. • ATMEGA 8, 16, 32 (AVR loại 8 bit, 16 bit, 32 bit): Là loại AVR tốc độ cao, tích hợp sẵn ADC 10 bit. • AVR tích hợp sẵn LCD driver : Atmega169,329 • AVR có tích hợp SC (power stage controller): AT90PWM thường dùng trong các ứng dụng điều khiển động cơ hay chiếu sáng nên còn gọi là lighting AVR. • Attiny11, 12, 15: AVR loại nhỏ. Phần cốt lõi của AVR kết hợp tập lệnh phong phú về số lượng với 32 thanh ghi làm việc đa năng. Toàn bộ 32 thanh ghi đều được nối trực tiếp với Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  16. Chương 1: Giới thiệu 16 Giáo trình vi xử lý ALU (Arithmetic Logic Unit), cho phép truy cập 2 thanh ghi độc lập bằng một chu kì xung nhịp. Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng CISC (Complex Intruction Set Computer) thông thường. 1.4.2. Cấu trúc AVR Hình 1.7: Sơ đồ chân của vi xử lý AVR Được chế tạo theo kiến trúc RISC, hiệu suất cao và điện năng tiêu thụ thấp. - Bộ lệnh gồm 118 lệnh, hầu hết đều thực thi chỉ trong một chu kì xung nhịp. - 32x8 thanh ghi làm việc đa dụng. - 8KB Flash ROM lập trình được ngay trên hệ thống. +Giao diện nối tiếp SPI cho phép lập trình ngay trên hệ thống. +Cho phép 1000 lần ghi/xoá. - Bộ EEPROM 512 byte. +Cho phép 100.000 ghi/xoá. - Bộ nhớ SRAM 512 byte. - Bộ biến đổi ADC 8 kênh, 10 bit. - 32 ngõ I/O lập trình được. - Bộ truyền nối tiếp bất đồng bộ vạn năng UART. - Vcc=2.7V đến 6V. - Tốc độ làm việc: 0 đến 8 MHz. Sơ đồ chân Atmega16 Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  17. Chương 1: Giới thiệu 17 Giáo trình vi xử lý - Tốc độ xử lí lệnh đến 8 MIPS ở 8 MHz nghĩa là 8 triệu lệnh trên giây. - Bộ đếm thời gian thực (RTC) với bộ dao động và chế độ đếm tách biệt - 2 bộ Timer 8 bit và 1 bộ Timer 16 bit với chế độ so sánh và chia tần số tách biệt và chế độ bắt mẫu. - Ba kênh điều chế độ rộng xung PWM. - Có đến 13 interrupt ngoài và trong. - Bộ định thời Watchdog lập trình được, tự động reset khi treo máy. - Bộ so sánh tương tự. - Ba chế độ ngủ: chế độ rỗi (Idle), tiết kiệm điện (Power save) và chế độ Power Down. VCC: Điện áp nguồn nuôi. GND: Nối mass. 1.4.3. Xuất/ nhập PortA (PA7…PA0): PortA là Port vào/ ra hai hướng 8 bit, các chân của PortA có các điện trở nối lên nguồn dương. Các chân ra của Port A có thể cho phép dòng điện 20mA đi qua và trực tiếp điều khiển LED hiển thị. Khi các chân PA0 đến PA7 là các lối vào và được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu các điện trở nối lên nguồn dương được kích hoạt. Các chân của cổng A ở vào trạng thái có điện trở cao khi tín hiệu reset ở mức tích cực hoặc ngay cả khi không có tín hiệu xung clock. Port A cung cấp các đường địa chỉ/ dữ liệu vào/ ra hoạt động theo kiểu đa hợp kênh khi dùng bộ nhớ SRAM ở bên ngoài. PortA còn có thêm chức năng là ngõ vào tương tự và đưa đến bộ chuyển đổi AD. Các Port B, C, D tương tự như Port A nhưng không có chức năng chuyển đổi AD RESET: Lối vào đặt lại. Bộ vi điều khiển sẽ được đặt lại khi chân này ở mức thấp trong hơn 50ns, các xung ngắn hơn không tạo ra tín hiệu đặt lại. XTAL1: Lối vào bộ khuếch đại đảo và lối vào mạch tạo xung nhịp bên trong. XTAL2: Lối ra bộ khuếch đại đảo. XTAL1 và XTAL2 lần lượt là lối vào và lối ra của một bộ khuếch đại đảo. Bộ khuếch đại này được bố trí để làm bộ tạo dao động trên chip. Một bộ tinh thể thạch anh hoặc một bộ cộng hưởng gốm có thể được sử dụng. Để điều khiển bộ vi điều khiển từ một nguồn xung nhịp bên ngoài, chân XTAL2 để trống, còn chân XTAL1 được nối với bộ dao động bên ngoài. ICP: Là chân vào cho chức năng bắt tín hiệu vào bộ timer/ counter1. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  18. Chương 1: Giới thiệu 18 Giáo trình vi xử lý OC1B: Là chân ra PWM, ngõ ra so sánh của timer/ counter1. ALE: Là chân tín hiệu cho phép chốt địa chỉ được dùng khi truy nhập bộ nhớ ngoài. Xung ALE được dùng để chốt 8 bit địa chỉ thấp vào một bộ chốt địa chỉ trong chu kỳ truy cập bộ nhớ thứ nhất. Sau đó các chân AD0-7 được dùng làm các đường dữ liệu trong chu kỳ truy nhập bộ nhớ thứ hai. 1.5. HỌ PIC 1.5.1. Giới thiệu các họ vi điều khiển 8 bit của hãng Microchip Technology Hãng Microchip Technology là một trong những nhà cung cấp hàng đầu về các giải pháp điều khiển cho các hệ thống nhúng (Embedded control system). Hai dòng sản phẩm chính của hãng là các họ vi điều khiển 8-bit PIC16/17 và các chip nhớ không bay hơi EEPROM nối tiếp, những sản phẩm này được đưa vào ứng dụng cho việc đưa ra các giải pháp thiết kế các hệ thống điều khiển nhúng của hãng cung cấp cho khách hàng. Các họ vi điều khiển PIC16Cxx v PIC17Cxx của hãng Microchip Technology được sử dụng khá thông dụng và rộng rãi cho các ứng dụng điều khiển trong việc chế tạo các sản phẩm tiêu dùng, trong tự động hóa văn phòng, thiết bị ngoại vi của máy tính, các hệ thống tự động điều khiển ... Dưới đây liệt kê các đặc điểm chính, các thnh phần cơ bản của một số chip vi điều khiển trong các họ vi điều khiển 8- bit PIC16Cxx v PIC17Cxx. 1.5.2. Cấu trúc phần cứng Hình 1.8: Sơ đồ chân của PIC18F4431/4331 PIC được thiết kế tương thích với RISC CPU. Tập lệnh gồm có 35 word. - Thích hợp với tần số dao động đầu vào 20MHz, chu kỳ lệnh là 20ns. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  19. Chương 1: Giới thiệu 19 Giáo trình vi xử lý - Bộ nhớ chương trình: 8Kb - Bộ nhớ dữ liệu(RAM): 368Byte - Bộ nhớ EEPROM: 256Byte - Có 3 bộ định thời: Timer0 (8 bit), timer1(16 bit), timer2(8 bit) - 2 chế độ Capture, chế độ điều khiển độ rộng xung - giao tiếp RS232, chế độ SPI, I2C, giao tiếp song song. - Có 15 nguyên nhân ngắt - 5 cổng vào/ra dữ liệu 8 kênh đầu vào tín hiệu tương tự, chuyển đổi AD 10bit, 2 kênh so sánh tín hiệu tương tự Tập lệnh: gồm có 35 từ khóa. VDD: chân nguồn tương thích họ TTL 5V VSS: nối đất GND PORTA: gồm có 6 bit (RA5-RA0), là cổng vào ra dữ liệu 2 chiều được định hướng bởi thanh ghi TRISA. Nếu TRISA=0, các chân của PORTA sẽ định hướng kiểu cổng ra (output), nếu TRISA=0xFF PORTA sẽ định hướng đầu vào (input) Ngoài ra PORTA còn là các chân đầu vào tín hiệu Analog khi đặt cấu hình chuyển đổi ADC. Sau khi reset phần cứng PORTA mặc định ở chế độ ADC. Khi muốn làm cổng vào ra dữ liệu cần tắt chế độ ADC. PORTE: chỉ có 2 chân RE2-RE0, cũng giống như PORTA, khi không đặt ở chế độ ADC cổng này cũng được định hướng vào ra bởi TRISE. PORTB, PORTC, PORTD cũng giống như hai PORT trên, đều được cấu hình vào ra định hướng bới thanh ghi TRISB, TRISC, TRISD nhưng lại không có chế độ ADC. OSC1: chân vào dao động OSC2: chân ra dao động Dao động ngoài có thể sự dụng thạch anh đến tần số 20MHz Canquynhon.blogtiengviet.net Đại học Quy Nhơn
  20. Chương 1: Giới thiệu 20 Giáo trình vi xử lý Hình 1.9: Sơ đồ đấu nối giao tiếp của PIC 1.5.3 Công cụ phát triển cho họ vi điều khiển PIC16/17 Họ vi điều khiển PIC16/17 được hỗ trợ bởi đầy đủ các công cụ phát triển cả về phần cứng và phần mềm sau đây : PICMASTERđ Real-Time In-Curcirt Emulator. PROMATETM Universal Programmer. PICSTARTđ Low-Cost Prototype Programmer. PICDEM-1 Low-Cost Demonstration Board. PICDEM-2 Low-Cost Demonstration Board. MPASM Assembler. MPSIM Softwave Simulator. C Compiler (MP-C). Fuzzy logic development system (fuzzy TECHđ-MP). Dưới đây ta sẽ đi vào giới thiệu hai công cụ phát triển phần mềm thường được sử dụng là MPASM Assembler và C Compiler (MP-C). MPASM Assembler MPASM có hỗ trợ đầy đủ cho việc viết tạo ra các Macro trong chương trình mã ngữ, viết chương trình bằng ngôn ngữ Assembly, cung cấp các mã nguồn có sẵn và các định dạng file khác nhau. Nó tạo ra một môi trường cho phép soạn thảo mã nguồn, biên dịch cũng như gỡ rối các chương trình của người sử dụng lập trình cho các chip vi điều khiển khác nhau bao gồm cả họ PIC16Cxx, PIC 16Cxx v PIC16C5x. Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Đồng bộ tài khoản