Tài liệu về PSoC

62 315 0
Tài liệu về PSoC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN Giới thiệu về PSoC PSoC là một từ viết tắt của cụm từ tiếng anh P rogrammable System on Chip, nghĩa là hệ thống khả trình trên một chíp. Các chíp chế tạo theo công nghệ PSoC cho phép thay đổi đợc cấu hình đơn giản bằng cách gán chức năng cho các khối tài nguyên có sẵn trên chíp. Hơn nữa nó còn có thể kết nối tơng đối mềm dẻo các khối chức năng với nhau hoặc giữa các khối chức năng với các cổng vào ra. Chính vì vậy mà PSoC có thể thay thế cho rất nhiều chức năng nền của một số hệ thống cơ bản chỉ bằng một đơn chíp. Thành phần của chíp PSoC bao gồm các khối ngoại vi số và tơng tự có thể cấu hình đợc, một bộ vi xử lý 8 bit, bộ nhớ chơng trình (EEROM) có thể lập trình đợc và bộ nhớ RAM khá lớn. Để lập trình hệ thống, ngời sử dụng đợc cung cấp một phần mềm lập trình, ví dụ nh cho các chíp PSoC của Cypress ngời lập trình phải có phần mềm PSoC Designer. Ngoài ra để cài đợc chơng trình điều khiển vào chíp thì ngời lập trình phải có một kit phát triển do hãng chế tạo chip cung cấp (hoặc một bộ nạp). Phần mềm thiết kế đợc xây dựng trên cơ sở hớng đối tợng với cấu trúc module hóa. Mỗi khối chức năng là một module mềm. Việc lập cấu hình cho chíp nh thế nào là tùy thuộc vào ngời lập trình thông qua một số th viện chuẩn. Ngời lập trình thiết lập cấu hình trên chíp chỉ đơn giản bằng cách muốn chíp có những chức năng gì thi kéo chức năng đó và thả vào khối tài nguyên số hoặc tơng tự, hoặc cả hai tùy theo từng chức năng (Phơng pháp lập trình kéo thả). Việc thiết lập ngắt trên chân nào, loại ngắt là gì, các chân vào ra đợc hoạt động ở chế độ nh thế nào đều tùy thuộc vào việc thiết lập của ngời lập trình khi thiết kế và lập trình cho PSoC. Với khả năng đặt cấu hình mạnh mẽ này, một thiết bị điều khiển, đo lờng có thể đợc gói gọn trên một chip duy nhất. Chính vì lý do đó, hãng Cypress MicroSystems đã không gọi sản phẩm của mình là vi điều khiển (àC) nh truyền thống, mà gọi là thiết bị PSoC (PSoC device), và họ hy vọng rằng, với khả năng đặt cấu hình mạnh mẽ, ngời sử dụng sẽ có đợc những thiết bị điều khiển, những thiết bị đo có giá rẻ, kích thớc nhỏ gọn, và sản phẩm PSoC của họ sẽ thay thế đợc các thiết bị dựa trên vi xử lý hoặc vi điều khiển đã có từ trớc đến nay. Chíp PSoC (CY8C27xxx) cung cấp: Bộ vi xử lý với cấu trúc Harvard. - Tốc độ của bộ vi xử lý lên đến 24 MHz - Lệnh nhân 8 bit x 8 bit, thanh ghi tích lũy là 32 bit - Hoạt động ở tốc độ cao mà năng lợng tiêu hao ít - Dải điện áp hoạt động từ 3.0 tới 5.25V - Điện áp hoạt động có thể giảm xuống 1.0 V sử dụng chế độ kích điện áp - Hoạt động trong dải nhiệt độ -40 0 C đến 85 0 C. Các khối ngoại vi có thể đợc sử dụng độc lập hoặc kết hợp ĩ 12 khối ngoại vi tơng tự có thể đợc thiết lập để làm các nhiệm vụ: - Các bộ ADC lên tới 14 bit - Các bộ DAC lên tới 9 bit. - Các bộ khuếch đại có thể lập trình đợc hệ số khuếch đại. - Các bộ lọc và các bộ so sánh có thể lập trình đợc 49 Tµi liÖu PSoC – biªn dÞch tõ Datasheet bëi NguyÔn Xu©n S¬n §KT§1 – K44 - §HBKHN H×nh 3-1 : S¬ ®å khèi cÊu tróc cña PSoC (CY8C27000) 50 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN ĩ 8 khối ngoại vi số có thể đợc thiết lập để làm các nhiệm vụ: - Các bộ định thời đa chức năng, đếm sự kiện, đồng hồ thời gian thực, bộ điều chế độ rộng xung có và không có dải an toàn (deadband) - Các modun kiểm tra lỗi (CRC modunles) - Hai bộ truyền thông nối tiếp không đồng bộ hai chiều - Các bộ truyền thông SPI Master hoặc Slave có thể cấu hình đợc - Có thể kết nối với tất cả các chân vào ra. Bộ nhớ linh hoạt trên chíp - Không gian bộ nhớ chơng trình Flash từ 4K đến 16K, phụ thuộc vào từng loại chíp với chu kỳ ghi xóa cho bộ nhớ Flash là 50.000 lần - Không gian bộ nhớ RAM là 256 byte - Chíp có thể lập trình thông qua chuẩn nối tiếp (ISSP) - Bộ nhớ Flash có thể đợc nâng cấp từng phần - Chế độ bảo mật đa năng, tin cậy - Có thể tạo đợc không gian bộ nhớ Flash trên chíp lên tới 2,304 byte Có thể lập trình đợc cấu hình cho từng chân của chíp - Các chân vào ra ba trạng thái sử dụng Trigger Schmitt - Đầu ra logic có thể cung cấp dòng 25mA với điện trở treo cao hoặc thấp bên trong - Thay đổi đợc ngắt trên từng chân - Đờng ra tơng tự có thể cung cấp dòng tới 40mA - Đờng ra đa chức năng có từ 6 đến 44 tùy thuộc vào từng loại chíp Xung nhịp của chíp có thể lập trình đợc - Bộ tạo dao động 24/48MHz ở bên trong (độ chính xác là 2,5%, không cần thiết bị ngoài) - Có thể lựa chọn bộ dao động ngoài lên tới 24MHz - Bộ dao động thạch anh 32,768 kHz bên trong - Bộ tạo dao động tốc độ thấp bên trong sử dụng cho Watchdog và Sleep Ngoại vi đợc thiết lập sẵn - Bộ định thời Watchdog và Sleep phục vụ chế độ an toàn và chế độ nghỉ - Module truyền thông I 2 C Master và I 2 C Slave tốc độ lên tới 400kHz - Module phát hiện điện áp thấp đợc cấu hình bởi ngời sử dụng Công cụ phát triển - Phần mềm phát triển miễn phí (PSoC TM Designer) - Bộ lập trình và bộ mô phỏng với đầy đủ tính năng - Mô phỏng ở tốc độ cao 51 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN Chơng 4: Cấu trúc Vi xử lý 1. Bộ vi xử lý CPU 1.1. Giới thiệu chung Các họ chíp của PSoC dựa trên bộ vi xử lý mạnh mẽ 8 bit với cấu trúc Harvard (Cấu trúc Harvard là cấu trúc mà bus dữ liệu, bus địa chỉ và tín hiệu điều khiển của bộ nhớ chơng trình và bộ nhớ dữ liệu độc lập với nhau). Nó có 5 thanh ghi điều khiển hoạt động chính của CPU. Những thanh ghi này bị tác động bởi những lệnh khác nhau. Ngời sử dụng không thể truy cập trực tiếp vào các thanh ghi này thông qua không gian bộ nhớ các thanh ghi. Các thanh ghi của CPU đợc cho trong bảng sau: Bảng 4-1: Các thanh ghi của CPU Thanh ghi Mã gợi nhớ Flags (thanh ghi cờ) CPU_F Program Counter (thanh ghi đếm chơng trình) CPU_PC Accumulator (thanh ghi chứa) CPU_A Stack Pointer (thanh ghi con trỏ Stack) CPU_SP Index (thanh ghi chỉ số) CPU_X Bộ đếm chơng trình là một thanh ghi16 bit (CPU_PC), nó cho phép ngời lập trình truy cập trực tiếp vào toàn bộ không gian bộ nhớ chơng trình trên chíp (16 Kbytes đối với thành viên lớn nhất). Đây là một không gian nhớ liên tục và không cần phải tạo thành trang (no paging). Thanh ghi chứa (Accumulator) là một thanh ghi đa mục đích, nó thờng đợc sử dụng để lu giữ kết quả của bất cứ một lệnh nào sử dụng chế độ địa chỉ nguồn. Thanh ghi chỉ số đợc dùng để lu giữ giá trị Offset (độ lệch) trong chế độ địa chỉ chỉ số. Tiêu biểu là nó đợc dùng để địa chỉ một khối dữ liệu bên trong không gian nhớ dữ liệu. Thanh ghi Con trỏ Stack (Stack Pointer) lu giữ địa chỉ của đỉnh Stack trong không gian nhớ dữ liệu. Nó bị tác động bởi những lệnh nh PUSH, POP, LCALL, RETI và RET. Nói chung là tất cả những lệnh có liên quan đến stack của phần mềm. Nó cũng có thể bị ảnh hởng bởi lệnh SWAP và lệnh ADD. Thanh ghi cờ (Flags) có ba bit trạng thái: bit cờ không - Zero Flag bit[1]; bit cờ nhớ -Carry Flag bit[2]; bit Supervisory State[3]. Bit cho phép ngắt toàn cục Global Interrupt enable bit[0] đợc dùng để cho phép hoặc cấm toàn bộ các ngắt. Các cờ trên bị ảnh hởng bởi những lệnh toán học, những lệnh logic. v.v 1.2. Thanh ghi của CPU 1.2.1. Thanh ghi cờ (Flags Register) Bảng 4-2: Thanh ghi cờ (CPU_F) Bit # 7 6 5 4 3 2 1 0 POR 0 0 0 0 0 0 1 0 Read/Write RW R RW RW RW Bit Name Reseved Reseved Reseved XIO Super Carry Zero Global IE Bit 7: Reserved (cha đợc định nghĩa) Bit 6: Reserved Bit 5: Reserved Bit 4: XIO - đợc đặt bởi ngời sử dụng cho phép lựa chọn giữa các dãy thanh ghi 52 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN 0 = Bank 0 1 = Bank 1 Bit 3: Reserved Bit 2: Carry - đợc đặt bởi CPU để chỉ rõ toán tử trong phép toán logic hoặc toán học trớc đó có nhớ hay không 0 = No Carry (không có nhớ) 1 = Carry (có nhớ) Bit 1: Zero - đợc đặt bởi CPU để chỉ rõ toán tử trong phép toán logic hoặc toán học trớc đó có bằng không hay không. 0 = Not Equal to Zero (không bằng không) 1 = Equal to Zero (bằng không) Bit 0: Global IE Quyết định toàn bộ các ngắt là cho phép hay bị cấm 0 = Disabled (cấm) 1 = Enabled (cho phép) 1.2.2. Thanh ghi chứa Bảng 4-3: Thanh ghi chứa (CPU_A) Bit # 7 6 5 4 3 2 1 0 POR 0 0 0 0 0 0 0 0 Read/Write System 1 System 1 System 1 System 1 System 1 System 1 System 1 System 1 Bit Name Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0] Bit [7:0]: 8 bit dữ liệu lu giữ kết quả của bất cứ một lệnh toán học/logic sử dụng chế độ địa chỉ nguồn Chú ý: POR (Power on reset): Trạng thái của bít sau khi reset nguồn. System 1 : do hệ thống điều chỉnh, ngời dùng không thể thay đổi trực tiếp đợc giá trị của những bit này 1.2.3. Thanh ghi chỉ số Bảng 4-4: Thanh ghi chỉ số (CPU_X) Bit # 7 6 5 4 3 2 1 0 POR 0 0 0 0 0 0 0 0 Read/Write System 1 System 1 System 1 System 1 System 1 System 1 System 1 System 1 Bit Name Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0] Bit [7:0]: 8 bit dữ liệu lu giữ chỉ số cho bất cứ một lệnh nào sử dụng chế độ địa chỉ chỉ số 1.2.4. Thanh ghi con trỏ Stack Bảng 4-5: Thanh ghi con trỏ Stack (CPU_SP) Bit # 7 6 5 4 3 2 1 0 POR 0 0 0 0 0 0 0 0 Read/Write System 1 System 1 System 1 System 1 System 1 System 1 System 1 System 1 Bit Name Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0] Bit [7:0]: 8 bit dữ liệu lu giữ giá trị con trỏ stack hiện thời (trỏ vào đỉnh của stack) 1.2.5. Thanh ghi bộ đếm chơng trình Bảng 4-6: Thanh ghi bộ đếm chơng trình (CPU_PC) Bit# 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 POR 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Read/ write 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Bit Name Data [15] Data [14] Data [13] Data [12] Data [11] Data [10] Data [9] Data [8] Data [7] Data [6] Data [5] Data [4] Data [3] Data [2] Data [1] Data [0] Bit[15:0]: 16 bit Dữ liệu là byte thấp và byte cao của bộ đếm chơng trình 53 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN Hình 4-1 : Cấu trúc liên kết của CPU với bộ nhớ (cấu trúc Harvard) 1.3. Định dạng của lệnh 1.3.1. Lệnh 1 byte Lệnh 1 byte là lệnh không dùng địa chỉ hay dữ liệu nh toán hạng. lệnh 1 byte sử dụng một mã lệnh 8 bit ví dụ nh RET,ASR,INC,DEC Bảng 4-7 : Dạng lệnh 1 byte Byte 0 8- bit opcode 1.3.2. Lệnh 2 byte Lệnh 2 byte là lệnh dùng duy nhất một toán hạng là dữ liệu hay địa chỉ. Lệnh 2 byte sử dụng byte đầu tiên để chứa mã lệnh, byte thứ hai để chứa dữ liệu hoặc địa chỉ. Hoặc nó sử dụng 4 bit đầu cho mã lệnh và 12 bit sau cho địa chỉ. Bảng 4-8 : Dạng lệnh 2 byte Byte 0 Byte 1 4-Bit opcode 12-bit relative address 8-Bit opcode 8-bit data 8-Bit opcode 8-bit address 1.3.3. Lệnh 3 byte 54 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN Lệnh loại này sử dụng 3 byte bởi vì nó đợc sử dụng để di chuyển dữ liệu giữa hai địa chỉ trong không gian địa chỉ mà ngời sử dụng có thể truy nhập. Hoặc nó dùng để lu giữ một giá trị địa chỉ tuyệt đối 16 bit trong các lệnh LCALL và LJMP. Bảng 4-9 : Dạng lệnh 3 byte Byte 0 Byte 1 Byte 2 8-Bit opcode 16-bit address (MSB,LSB) 8-Bit opcode 8-bit data 8-bit data 8-Bit opcode 8-bit address 8-bit address 1.4. Các chế độ địa chỉ trong PSoC 1.4.1. Chế độ địa chỉ nguồn tức thời (Source Immediate) Những lệnh sử dụng chế độ địa chỉ này có giá trị nguồn đợc lu giữ trong toán hạng 1 của lệnh, kết quả đợc lu giữ trong thanh ghi A, thanh ghi F, thanh ghi SP hay thanh ghi X đợc chỉ rõ trong lệnh. Lệnh sử dụng chế độ địa chỉ này có độ dài là 2 byte. Bảng 4-10 : Chế độ địa chỉ nguồn tức thời Opcode Operand 1 Instruction Inmediate Value Vídụ: Mã nguồn Mã máy Chú thích ADD A,7 01 07 Giá trị tức thời là 7 đợc cộng vào thanh chứa, kết quả đợc lu vào thanh chứa MOV X,8 57 08 Giá trị tức thời là 8 đợc chuyển vào thanh ghi X AND F,9 70 09 Giá trị tức thời là 9 đợc AND với giá trị trong thanh ghi F, kết quả của phép AND đợc đặt trong thanh ghi F 1.4.2. Chế độ địa chỉ nguồn trực tiếp (Source Direct) Trong chế độ này thì địa chỉ nguồn đợc lu giữ trong toán hạng 1 của lệnh. Trong suốt quá trình thi hành lệnh thì địa chỉ đợc dùng để lấy giá trị nguồn từ RAM hoặc từ không gian địa chỉ thanh ghi. Kết quả đợc chỉ rõ trong lệnh là đặt vào thanh ghi X hay thanh ghi A. Tất cả những lệnh sử dụng chế độ địa chỉ trực tiếp đều là lệnh có độ dài 2 byte. Bảng 4-11 : Chế độ địa chỉ nguồn trực tiếp Opcode Operand 1 Instruction Source Address Ví dụ: Mã nguồn Mã máy Chú thích ADD A,[7] 02 07 Giá trị trong bộ nhớ tại địa chỉ 7 đợc cộng vào thanh chứa kết quả lại đợc lu giữ trong thanh chứa MOV X, REG[8] 5D 08 Giá trị trong không gian thanh ghi tại địa chỉ 8 đợc chuyển vào thanh chứa 1.4.3. Chế độ địa chỉ nguồn chỉ số (Source Indexed) Trong chế độ này thì dữ liệu của nguồn đợc truy xuất trong RAM hoặc không gian địa chỉ thanh ghi thông qua địa chỉ là giá trị hiện thời của thanh ghi X cộng với một chỉ số. Kết quả đợc chỉ rõ trong lệnh là lu giữ trong thanh ghi X hay thanh ghi A. Lệnh có độ dài là 2 byte Bảng 4-12 : Chế độ địa chỉ nguồn chỉ số Opcode Operand 1 55 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN Instruction Source Index Ví dụ: Mã nguồn Mã máy Chú thích ADD A,[X+7] 03 07 Giá trị trong bộ nhớ tại địa chỉ X+7 đợc cộng vào thanh chứa, kết quả lại đợc lu vào thanh chứa MOV X,[X+8] 59 08 Giá trị trong bộ nhớ tại địa chỉ X+8 đợc di chuyển vào thanh ghi X 1.4.4. Chế độ địa chỉ đích trực tiếp (Destination Direct) Nhng lệnh thuộc chế độ địa chỉ này có địa chỉ đích đợc lu trữ trong mã máy của lệnh, địa chỉ nguồn đợc chỉ rõ trong lệnh là thanh ghi A hay X. Tất cả những lệnh sử dụng chế độ địa chỉ này đều là lệnh 2 byte. Bảng 4-13 : Chế độ địa chỉ đích trực tiếp Opcode Operand 1 Instruction Destination Address Ví dụ: Mã nguồn Mã máy Chú thích ADD [7], A 04 07 Giá trị trong thanh chứa đợc cộng với giá trị trong bộ nhớ tại địa chỉ 7, kết quả lại đợc lu vào bộ nhớ tại địa chỉ 7. Giá trị thanh chứa không đổi MOV REG[8], A 60 08 Giá trị trong thanh chứa đợc di chuyển vào không gian thanh ghi tại địa chỉ 8. Giá trị thanh chứa không đổi. 1.4.5. Chế độ địa chỉ đích chỉ số (Destination Indexed) Những lệnh thuộc chế độ địa chỉ này có đích đợc xác định bằng cách lấy giá trị của thanh ghi X cộng với một chỉ số làm địa chỉ để truy xuất vào bộ nhớ, nguồn đợc xác định trong lệnh là thanh ghi A hoặc một giá trị tức thời. Những lệnh sử dụng chế độ địa chỉ này đều là lệnh có độ dài 2 byte. Bảng 4-14 : Chế độ địa chỉ đích chỉ số Opcode Operand 1 Instruction Destination Index Ví dụ: Mã nguồn Mã máy Chú thích ADD [X+7], A 05 07 Giá trị trong bộ nhớ tại địa chỉ X+7 đợc cộng vào thanh chứa, kết quả đợc lu vào bộ nhớ tại địa chỉ X+7, thanh chứa không thay đổi 1.4.6. Chế độ địa chỉ đích trực tiếp, nguồn tức thời tức thời (Destination Direct, Source Immediate) Những lệnh thuộc chế độ địa chỉ này có địa chỉ của đích đợc lu giữ trong toán hạng 1 của lệnh. Giá trị của nguồn đợc lu trữ trong toán hạng 2 của lệnh. Tất cả những lệnh thuộc chế độ địa chỉ này đều là lệnh có độ dài 3 byte. Bảng 4-15 : Chế độ địa chỉ đích trực tiếp, nguồn tức thời Opcode Operand 1 Operand 2 Instruction Destination Address Immediate Value 56 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN Ví dụ: Mã nguồn Mã máy Chú thích ADD [7],5 06 07 05 Giá trị trong bộ nhớ tại địa chỉ 7 đợc cộng với giá trị tức thời 5, kết quả lại đợc lu vào bộ nhớ tại địa chỉ 7. MOV REG[8],6 62 08 06 Giá trị tức thời 6 đợc di chuyển vào không gian thanh ghi tại địa chỉ 8 1.4.7. Chế độ địa chỉ đích chỉ số, nguồn tức thời (Destination Indexed, Source Immediate) Trong chế độ này thì giá trị của thanh ghi X cộng với một chỉ số đợc lấy làm địa chỉ để lấy dữ liệu trong bộ nhớ. Còn dữ liệu nguồn là một số trực tiếp. Tất cả những lệnh thuộc chế độ địa chỉ này đều là lệnh 3 byte. Bảng 4-16 : Chế độ địa chỉ đích chỉ số, nguồn tức thời Opcode Operand 1 Operand 2 Instruction Destination Index Immediate Value Ví dụ: Mã nguồn Mã máy Chú thích ADD [X+7],5 07 07 05 Giá trị trong bộ nhớ tại địa chỉ X+7 đợc cộng với giá trị tức thời 5, kết quả lại đợc lu vào bộ nhớ tại địa chỉ X+7. MOV REG[X+8],6 63 08 06 Giá trị tức thời 6 đợc di chuyển vào không gian thanh ghi tại địa chỉ X+8 1.4.8. Chế độ địa chỉ đích trực tiếp, nguồn trực tiếp (Destination Direct, Source Direct) Chỉ có duy nhất một lệnh sử dụng chế độ địa chỉ này, địa chỉ của đích đợc lu giữ trong toán hạng 1 của lệnh còn địa chỉ của nguồn đợc lu giữ trong toán hạng 2 của lệnh. Tất cả những lệnh sử dụng chế độ địa chỉ này đều là lệnh có độ dài 3 byte. Bảng 4-17: Chế độ địa chỉ đích trực tiếp, nguồn trực tiếp Opcode Operand 1 Operand 2 Instruction Destination Address Source Address Ví dụ: Mã nguồn Mã máy Chú thích MOV [7],[8] 5F 07 08 Giá trị trong bộ nhớ tại địa chỉ 8 đợc di chuyển vào bộ nhớ tại địa chỉ 7. 1.4.9. Chế độ địa chỉ sử dụng con trỏ tự động tăng địa chỉ Con trỏ là toán hạng nguồn (Source Indirect Post Increment) Chỉ có duy nhất một lệnh sử dụng chế độ địa chỉ này, địa chỉ nguồn lu giữ trong toán hạng 1 hoạt động nh địa chỉ của một con trỏ. Trong suốt quá trình lệnh thi hành thì giá trị của con trỏ sẽ quyết định xem dữ liệu nào trong RAM sẽ đợc đọc. Sau khi đọc xong dữ liệu thì giá trị của con trỏ đợc tăng lên 1. Bảng 4-18 : Chế độ địa chỉ Source Indiect Post Increment Opcode Operand 1 Instruction Source Address Pointer Ví dụ: Mã nguồn Mã máy Chú thích MVI A,[8] 3E 08 Giá trị trong bộ nhớ tại địa chỉ 8 trỏ tới một ô nhớ trong RAM. Giá trị tại ô nhớ con trỏ trỏ tới sẽ đợc di chuyển vào thanh chứa. Sau đó, giá trị trong bộ nhớ tại địa chỉ 8 đợc tăng lên. Con trỏ là toán hạng đích (Destination Indirect Post Increment) 57 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN Chỉ có duy nhất một lệnh sử dụng chế độ địa chỉ này, địa chỉ đích lu giữ trong toán hạng 1 hoạt động nh địa chỉ của một con trỏ. Trong suốt quá trình lệnh thi hành thì giá trị của con trỏ sẽ quyết định xem dữ liệu nào trong RAM sẽ đợc đọc. Sau khi đọc xong dữ liệu thì giá trị của con trỏ đợc tăng lên 1. Bảng 4-19: Chế độ Destination Indirect Post Increment Opcode Operand 1 Instruction Destination Address Pointer Ví dụ: Mã nguồn Mã máy Chú thích MVI [8],A 3F 08 Giá trị trong bộ nhớ tại địa chỉ 8 trỏ tới một ô nhớ trong RAM. Giá trị trong thanh chứa sẽ đợc di chuyển tới vị trí ô nhớ mà con trỏ trỏ tới. Sau đó, giá trị trong bộ nhớ tại địa chỉ 8 đợc tăng lên. Nhận xét: Nh vậy ta thấy các chế độ địa chỉ trong PSoC cũng tơng đối dễ hiểu, tóm lại nó chỉ bao gồm: - Các dữ liệu tức thời là các con số: Ví dụ: 5 , 6 , 7 , 8 - Các dữ liệu trực tiếp đợc xác định thông qua các địa chỉ. Ví dụ: [7] , [8] - Các dữ liệu đợc xác định thông qua chỉ số, nó là dữ liệu ở địa chỉ [X+chỉ số)]: ví dụ: [X+5], [X+6], . - Các dữ liệu đợc xác định gián tiếp thông qua con trỏ nh trong hai chế độ địa chỉ cuối. Đây cũng là hai chế độ địa chỉ mà ít loại Vi xử lý có đợc. - Ta có thể nhận thấy rằng những lệnh lấy thanh ghi A hoặc X nh là một phần của toán hạng đều là lệnh 2 byte (xem lại các ví dụ trên). Sở dĩ nh vậy là vì trong mã lệnh đã đợc định nghĩa sẵn là làm việc với thanh ghi nào. Chẳng hạn nh trong ví dụ của mục 2.4.1 thì ta có thể thấy là mã máy gồm 2 byte, byte đầu tiên là mã lệnh của lệnh cộng vào thanh chứa, byte thứ hai là giá trị đợc cộng vào thanh chứa. Nh vậy, với cách định nghĩa trên thì những lệnh nh vậy sẽ tiết kiệm đợc chu kỳ hoạt động của chip, từ đó rút ngắn đợc thời gian thực hiện lệnh. Việc mã hóa nh vậy cho phép phát huy tốc độ tính toán của chíp trong những ứng dụng đòi hỏi tốc độ tính toán cao. - Ngoài ra còn phải phân biệt giữa cách truy xuất bộ nhớ RAM và bộ nhớ không gian thanh ghi. Cách truy xuất hai bộ nhớ này đợc phân biệt thông qua lệnh. Ví dụ: [7] là dữ liệu tại địa chỉ 7 trong RAM, nhng REG[7] lại là dữ liệu tại địa chỉ 7 trong không gian thanh ghi. 58 [...]... Reset Supply Voltage Monitor Analog Column 0 Analog Column 1 Analog Column 2 Analog Column 3 VC3 GPIO PSOC Block DBB00 PSOC Block DBB01 PSOC Block DCB02 PSOC Block DCB03 PSOC Block DBB10 PSOC Block DBB11 PSOC Block DCB12 PSOC Block DCB13 I2C Sleep Timer Mô tả cấu trúc của bộ điều khiển ngắt 59 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN Interrupt Source: Nguồn ngắt (bộ... 78 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN Ch ơng 5: Hệ thống khối PSoC Số Cấu trúc của hệ thống số Hình vẽ d ới đây mô tả cấu trúc cao nhất của hệ thống số trong PSoC Mỗi thành phần đều đ ợc mô tả chi tiết trong phần này Hình 5 - 1: Sơ đồ khối mô tả cấu trúc các khối số trong PSoC Các thanh ghi số Bảng sau đây liệt kê toàn bộ các thanh ghi số của hệ thống số trong PSoC. .. bypass Nếu chế độ cổng ra là cao trở thì chân đó đ ợc lựa chọn cho đầu vào toàn cục 66 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN Nếu chế độ cổng ra khác chế độ cao trở thì chân đó đ ợc lựa chọn là đầu ra toàn cục, bỏ qua giá trị của thanh ghi dữ liệu (giả sử I2C enable = 0) Nếu thanh ghi đ ợc xóa về không thì chức năng vào ra toàn cục của chân đó bị khóa 3.2.4 Thanh ghi PRTxDMx... hiện nhờ thanh ghi dữ liệu cổng (Port Data Register PRTxDR) Việc viết dữ liệu vào thanh ghi PRTxDR sẽ l u lại trạng thái dữ liệu, mỗi bit cho một chân GPIO Trong chế độ th ờng (standard non-bypass) thì mỗi chân GPIO sẽ lặp lại bit dữ liệu đó Nghĩa là khi ta viết một giá trị vào trong thanh ghi dữ liệu PRTxDR thì ở đầu ra của cổng t ơng ứng sẽ có giá trị giống nh trong thanh ghi dữ liệu Điện áp thực ở... nhau Chẳng hạn những kết nối sau đây là không thể có trong chíp PSoC GOE[7] GIO[7] GOE[0] GIE[7] 83 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN 2 Kết nối dãy các khối số (Array Digital Interconnect - ADI) Dãy các khối PSoC sử dụng một kiến trúc leo thang đ ợc thiết kế để hỗ trợ từ một tới bốn hàng khối PSoC số Phần kết nối theo dãy (ADI) không có một sự kết nối có thể... cùng ngay tr ớc lệnh ghi vào bit sleep Điều này có nghĩa là tại thời điểm quay về từ ngắt, lệnh nghỉ sẽ đ ợc thi hành và có thể bỏ qua bất cứ một sự chuẩn bị nào của vi ch ơng trình cần thiết phải thực hiện theo trình tự để đi vào chế độ nghỉ Để ngăn chặn điều này thì cần phải cấm các ngắt tr ớc khi đi vào chế độ 74 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN nghỉ Sau khi chuẩn... mức thấp, nó sẽ tiếp tục giữ INTO ở mức thấp cho đến khi một trong các điều kiện sau đây thay đổi: 64 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN - Bit cho phép ngắt ở chân đ ợc xóa - Điện áp ở chân chuyển đổi sang trạng thái đối lập - Trong chế độ thay đổi ngắt, thanh ghi dữ liệu đ ợc đọc, do đó thiết lập mức độ ngắt nội tại sang trạng thái đối lập - Chế độ ngắt bị thay đổi... ờng địa chỉ cho biết thanh ghi có thể đ ợc truy nhập mà không cần biết dãy thanh ghi nào đang đ ợc sử dụng 80 Tài liệu về PSoC Bản quyền thuộc Nguyễn Xuân Sơn ĐKTĐ1 K44 ĐHBKHN 1 Liên kết số toàn cục (Global Digital Interconnect - GDI) GDI là một cấu hình kết nối trong dãy tín hiệu hỗn hợp PSoC có mức độ chung nhất Bảng 5 - 2: Các thanh ghi của GDI Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2... PRTxDR Khi CPU đọc giá trị của PRTxDR thì giá trị điện áp hiện thời của chân vào ra sẽ đ ợc chuyển đổi sang giá trị logic và đ ợc trả về cho CPU Hoạt động này sẽ đọc giá trị điện áp của chân vào ra chứ không phải là đọc về giá trị chốt của thanh ghi PRTxDR 63 Tài liệu PSoC biên dịch từ Datasheet bởi Nguyễn Xuân Sơn ĐKTĐ1 K44 - ĐHBKHN Vào ra toàn cục (Global IO) Các cổng vào ra đa chức năng cũng đ... hiểu về cấu trúc của nó mà thôi Hình 5-3: Cấu trúc dãy các khối PSoC số Những thành viên khác nhau trong họ PSoC sẽ có sự biến đổi số l ợng các khối PSoC trong một dãy Những khối này đ ợc sắp xếp theo các hàng và ADI cung cấp một kiến trúc liên kết chung giữa liên kết số toàn cục (GDI) và liên kết khối số theo hàng (RDI) Không cần biết số l ợng hàng có trong một chíp, điều quan trọng là các hàng PSoC . 0020h PSOC Block DBB00 9 0024h PSOC Block DBB01 10 0028h PSOC Block DCB02 11 002Ch PSOC Block DCB03 12 0030h PSOC Block DBB10 13 0034h PSOC Block DBB11 14 0038h PSOC Block DCB12 15 003Ch PSOC. Read/Write RW R RW RW RW Bit Name Reseved Reseved Reseved XIO Super Carry Zero Global IE Bit 7: Reserved (cha đợc định nghĩa) Bit 6: Reserved Bit 5: Reserved Bit 4: XIO - đợc đặt bởi ngời sử. trình trỏ vào địa chỉ thích hợp trong bảng vector ngắt. 4. Chơng trình sẽ thi hành vector trong bảng vector ngắt. Nhìn chung thì một lệnh LJMP trong bảng vector ngắt sẽ chuyển sự thi hành của CPU

Ngày đăng: 24/04/2014, 19:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan