Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

AMBA là một họ giao thức gồm nhiều chuẩn BUS khác nhau do ARM quy định.

APB (Advanced Peripheral Bus)

APB (Advanced Peripheral Bus) là một giao diện bus nội vi được sử dụng trong hệ thống tích
hợp (SoC) để kết nối các vi mạch ngoại vi với bộ điều khiển chính (CPU) hoặc bộ điều khiển trung
tâm. APB thường được sử dụng trong các hệ thống hỗn hợp như vi điều khiển ARM.

APB có thiết kế đơn giản hơn so với các giao diện bus nội vi khác như AHB (Advanced High-
performance Bus). Nó được thiết kế để kết nối các vi mạch ngoại vi với bộ điều khiển chính mà
không đòi hỏi hiệu năng cao. APB thường được sử dụng để kết nối các vi mạch ngoại vi nhỏ, chậm
và ít phức tạp hơn như UART, Timer, GPIO, I2C, SPI và bộ nhớ Flash.

Một số đặc điểm chính của APB bao gồm:

1. Đồng bộ: APB hoạt động theo nguyên tắc đồng bộ, có nghĩa là tín hiệu điều khiển và dữ
liệu truyền qua bus được đồng bộ hóa với một xung clock chung.

2. Chia sẻ bus: APB cho phép nhiều thiết bị ngoại vi chia sẻ một đường truyền bus duy nhất
thông qua việc sử dụng địa chỉ khác nhau và tín hiệu điều khiển.

3. Giao tiếp tuần tự: APB sử dụng giao tiếp tuần tự, tức là dữ liệu và tín hiệu điều khiển được
truyền qua bus một lần duy nhất theo từng bit hoặc từng byte.

4. Tốc độ truyền thấp: APB thường hoạt động ở tốc độ chậm hơn so với các giao diện bus nội
vi khác như AHB, nhằm phù hợp với các vi mạch ngoại vi có hiệu năng thấp.

Trên một hệ thống SoC, APB thường được kết nối với AHB để tạo thành một cấu trúc bus
phân cấp. Các vi mạch ngoại vi nhỏ và chậm hơn được kết nối với APB, trong khi các vi mạch ngoại
vi lớn hơn và đòi hỏi hiệu năng cao hơn được kết nối với AHB.

Tóm tắt đặc điểm chính của APB

- Đơn giản
+ Tín hiệu giao tiếp ít
+ Cách truyền dữ liệu đơn giản
+ Tốn ít tài nguyên để thiết kế
+ Tiêu thụ ít năng lượng

- Hoạt động không pipeline


+ Mỗi lần đọc ghi cần ít nhất 2 chu kỳ xung clock
+ Trong 1 lần truyền dữ liệu chỉ có thể đọc hoặc ghi chứ không thể vừa đọc vừa ghi
+ Băng thông thấp
+ Hiệu suất chuyển đổi dữ liệu thấp

 Trong 1 chip Soc APB thường được ứng dụng để kết nối vào các thành phần cần cấu
hình của hệ thống

Thông qua BUS hệ thống vào giao thức APB để cấu hình các thanh ghi của các ngoại vi và các
thành phần trong chip SOC

VD: Trước khi sử dụng 1 ngoại vi như UART cần phải thiết lập tốc độ truyền dữ liệu baurate,
phải enable ngoại vi, thiết lập số bit truyền dữ liệu. Các cấu hình như vậy trong 1 hệ thống SOC mà
sử dụng các giao thức AMBA thì thường sử dụng APB để cấu hình các việc đó.
Các phiên bản APB

+ APB2

- PCLK: Clock
- PRESETn: Reset. Tín hiệu reset hoạt động ở mức tích cực thấp. TÍn hiệu này thường được
kết nối trực tiếp với tín hiệu reset bus hệ thống.
- PADDR: Address. Đây là BUS địa chỉ của APB. Nó có thể rộng tới 32bit và được điều khiển
bởi bộ phận cầu nối ngoại vi (APB Bridge)
- PSELx: Select. APB Bridge tạo ra tín hiệu này cho từng Bus slave ngoại vi. Nó chỉ ra thiết bị
nào được chọn và yêu cầu truyền dữ liệu. Mỗi tín hiệu PSELx cho mỗi slave là khác nhau.
- PENABLE: Enable. Cho biết chu kì thứ 2 và các chu kì tiếp theo của quá trình truyền APB.
- PWRITE: Direction. Tín hiệu này cho biết quyền truyt cập APB write khi ở mức HIGH và và
quyền truy cập APB read khi ở mức thấp.
- PWDATA: Write data. Bus này được điều khiển bởi Bus Bridge ngoại vi trong các chu kì khi
PWRITE ở mức HIGH. Bus này có thể rộng tới 32 bit.
- PRDATA: Read data. Slave được chọn để điều khiển Bus này trong các chu kì đọc khi
PWRITE ở thức LOW. Bú này có thể rộng tới 32bit.

+ APB 3

APB 3 bao gồm toàn bộ tín hiệu từ phiên bản 2 và có thêm 2 tín hiệu là PREADY và
PSLVERR, 2 tín hiệu này được sinh ra từ phía APB Slave
- PRRADY: Được sử dụng bởi slave để báo hiệu với master biết slave đã sẵn sàng nhận yêu
cầu đọc ghi từ master chưa.
- PSLVERR: Được sử dụng để báo hiệu master biết quá trình đọc dữ liệu từ master có bị lỗi
không

+ APB 4

Bao gồm toàn bộ tín hiệu từ phiên bản 3 và có thêm 2 tín hiệu được sinh ra từ phía APB
master (APB bridge)

- PPROT: Protection type. Dùng để quy định mức protection của của một truy xuất
(đọc/ghi)
Hệ thống phức tạp đòi hỏi nhiều cấp độ truy suất khác nhau.
- PSTRB: Write strobes. Tín hiệu này cho biết làn byte nào sẽ cập nhật trong quá trình
truyền ghi. Có 1 lần ghi cho mỗi 8bit của bus dữ liệu ghi. Do đó. PSTRB[n] tương ứng với
PWDATA[(8n+7): (8n)]. Write strobes không được hoạt động trong quá trình truyền đọc.
VD: Bus dữ liệu là 32bit tức là có 4byte => PSTRB sẽ có 4bit mỗi bit ứng với 1 byte. Nhờ
tín hiệu này thì master khi ghi 1 giá trị 4byte 32bit gửi xuống phía slave thì nó sẽ báo cho
slave biết byte nào cần được ghi còn byte nào không
Cách hoạt động

Mô tả 1 lần Master gửi yêu cầu ghi dữ liệu vào 1 thanh ghi nào đó ở phía slave.

Giả sử APB master là APB Bridge kết nối với 1 APB Slave

- APB Slave có 2 thanh ghi mỗi thanh ghi 32bit (4byte) có địa chỉ là 0x00 và 0x04

Mỗi byte trong thanh ghi đều có địa chỉ khác nhau
-Trong khoảng từ 1-> 4 có PSEL và PENBLE đang bằng 0 nên lúc này không làm gì

-Trong khoảng từ 4-> 5 có PSEL =1 và PENABLE =0. Khi các tín hiệu điều khiển từ phía Master
lái đến phía Slave phải được gán các giá trị mà phía Master mong muốn

- Trong khoảng từ 5-> 6 có PSEL, PENABLE, PWRITE = 1 nhưng PREADY = 0 thì lúc này phía
Master phải giữ im các tín hiệu ổn định cho đến khi thấy sườn lên 1 của PREADY

- Trong khoảng từ 6-> 7 phía Master đã biết được phía Slave đã nhận được yêu cầu ghi

PSLVERR sẽ gửi tín hiệu về phái Master nếu bằng 1 thì quá trình Write transfer đã thành
công.
Mô tả quá trình master đọc dữ liệu từ slave:

You might also like