Thiết kế một hệ thống nhúng SoC trên nền tảng ZynQ
Sơ đồ khối chức năng kiến trúc phần cứng hệ thống nhúng SoC đã được đơn giản hóa và sự thực hiện của nó trên Vivado Design Stuite được chỉ ra trong các hính Hình 22 và Hình 23 một cách tương ứng.
Như đã đề cập ở trên, mục tiêu của chúng ta là xây dựng một hệ thống phần cứng máy tính nhúng cho mục đích đo lường và điều khiển. Hơn thế hệ thống cần có khả năng thực hiện hệ điều hành nhúng chẳng hạn Linux trên nó. Do đó cấu trúc của hệ thống được trang bị đủ các lõi IP chức năng cần thiết cả bên khối vi xử lý lẫn khối PL.
Hệ thống vi xử lý gồm các thành phần sau:
– Lõi vi xử lý ARM Cortex-A9: thực hiện chức năng của đơn vị xử lý trung tâm
trong hệ thống.
trong hệ thống.
– Khối bộ nhớ ngoài (DDR memory): dùng để hỗ trợ cho việc thực
thi hệ điều hành nhúng và các ứng dụng liên quan.
thi hệ điều hành nhúng và các ứng dụng liên quan.
– Cổng USB OTG: Dùng để kết nối với thiết bị ngoại vi (như chuột, bàn phím, …) thông
qua chuẩn giao tiếp USB.
qua chuẩn giao tiếp USB.
– Cổng Ethernet: Cho phép thiết bị có thể kết nối Internet.
– Cổng UART: cung cấp một giao diện điều khiển
để giám sát quá trình boot phần cứng sau khi cấp nguồn hệ thống.
để giám sát quá trình boot phần cứng sau khi cấp nguồn hệ thống.
– Giao diện ghép nối I2C: được dùng để thiết lập cấu hình các ngoại vi (như bộ phát HDMI, bộ adio CODEC, …) trên bo mạch Zedboard.
– SDCard: Là khối đọc thẻ nhớ SDcard. Thẻ nhớ SDcard được dùng để chứa các thông tin, dữ liệu của hệ điều hành, chương trình boot hệ điều hành và lưu trữ dữ liệu của các ứng dụng.
– Bộ định thời (Timer): cung cấp lượng tử thời gian cho hoạt động định thời của hệ điều hành.
– Bộ nhớ Quad SPI Flash: bộ nhớ này có thể được sử dụng thay cho thẻ nhớ SDcard để chứa chương trình boot và hệ điều hành.
Như đã chỉ ra trong chuyên đề 2, khối PS của ZynQ sử dụng kiến trúc AXI để truyền thông với các khối chức năng được ghép nối tới nó. Một số các thiết bị ngoại vi (như bộ phát HDMI, Audio CODEC, …) không hỗ trợ giao thức truyền thông của chuẩn AXI, do đó chúng ta cần phải thực hiện các cầu chuyển đổi để làm tương thích giữa 2 chuẩn truyền thông. Các chức năng chuyển đổi này được thực hiện bằng các mạch phần cứng trên khối cấu hình PL của ZynQ. Chức năng của các khối cụ thể như sau:
· Khối điều khiển phát HDMI (HDMI CTRL):
Để hiển thị một thông tin mong muốn trên màn hình hiển thị HDMI qua bộ phát HDMI, hệ vi xử lý cần phải cấu hình được bộ phát HDMI trước khi gửi đi dữ liệu cần hiển thị. Việc cấu hình bộ phát HDMI được thực hiện qua giao diện I2C, trong khi dữ liệu cần hiển thị được gửi qua giao diện AXI. Do đó, đơn vị điều khiển HDMI được thực hiện trong khối PL của ZynQ để đảm nhiệm chức năng bộ chuyển đổi giao thức truyền thông giữa hệ PS và bộ phát HDMI. Khối điều khiển phát thực hiện ba chức năng
sau:
Để hiển thị một thông tin mong muốn trên màn hình hiển thị HDMI qua bộ phát HDMI, hệ vi xử lý cần phải cấu hình được bộ phát HDMI trước khi gửi đi dữ liệu cần hiển thị. Việc cấu hình bộ phát HDMI được thực hiện qua giao diện I2C, trong khi dữ liệu cần hiển thị được gửi qua giao diện AXI. Do đó, đơn vị điều khiển HDMI được thực hiện trong khối PL của ZynQ để đảm nhiệm chức năng bộ chuyển đổi giao thức truyền thông giữa hệ PS và bộ phát HDMI. Khối điều khiển phát thực hiện ba chức năng
sau:
o Chuyển đổi dữ liệu hình ảnh trong giao thức truyền thông AXI của hệ PS sang định dạng tương thích với bộ phát ADV7511 HDMI trên bo mạch Zedboard (axi_hdmi_tx IP core).
o Chuyển đổi dữ liệu âm thanh trong giao thức truyền thông AXI của hệ PS sang định dạng tương thích với bộ phát ADV7511 HDMI trên bo mạch Zedboard (axi_spdif_tx IP core)).
o Truy xuất bộ nhớ trực tiếp (DMA) để di chuyển dữ liệu video giữa DDR và bộ phát HDMI (axi_hdmi_dma IP core)
· Khối điều khiển phát âm thanh: điều khiển việc truyền dữ liệu âm thanh cần phát từ bộ nhới hệ thống tới bộ giải mã âm thanh ADAU1761 trên bo mạch Zedboard. Khối điều khiển phát âm thanh được cấu thành từ khối DMA trên khối PS và 2 lõi IP thực hiện trên khối PL. Truyền thông giữa DMA trên PS và các lõi IP trên PL được thực hiện thông qua cổng S_AXI_HP2 của gia dienj AXI. Chức năng của các lõi IP trên PL như sau:
o Cầu nối giữa kênh 0 của khối DMA trên PS tới bộ phát HDMI (trên bo mạch Zedboard) để truyền dữ liệu âm thanh của giao diện HDMI. Chức năng này được thực hiện bằng lõi axi_spdif_tx_core (tức khối SPDIF trong Hình 22) trên khối PL.
o Cầu nối giữa các kênh 1 và 2 của khối DMA trên PS tới vi mạch mã hóa và giải mã âm thanh ADAU1761. Chức năng này được thực hiện lõi axi_i2s_adi (tức khối I2S trong hình Hình 22).
· Khối phát tín hiệu xung nhịp Clock: có chức năng tổng hợp ra các tần số tín hiệu xung nhịp clock phù hợp cho các khối điều khiển HDMI và phát âm thanh từ tín hiệu tân số 200 MHZ (nguồn từ FCLK_CLK1 của khối PS).
· Khối giao tiếp I2C: thực hiện 2 chức năngg:
o Cầu nối giữa bộ vi xử lý trên PS với một trong vi mạch ngoài vi ADV7511 và ADAU1761 thông qua một bộ hợp
kênh (IIC_Mixer trong Hình 22).
kênh (IIC_Mixer trong Hình 22).
o Cầu nối giữa bộ vi xử lý với khối FMC.
· Bộ điều khiển ngắt (Interrupt controller): Khối này nhận các tín hiệu yêu cầu ngắt từ các khối điều khiển HDMI, IIC, … và kết nối chúng tới lối vào ngắt của hệ thống PS.
· Các đèn LEDs: dùng để hiển thị trạng thái hoạt động của hệ thống.
· Các nút bấm Buttons: cho phép người dùng thực hiện một số thao tác thiết lập chế độ hoạt động của hệ thống.
·
PMod StepM: dùng điều khiển các comotor
PMod StepM: dùng điều khiển các comotor
·
Màn hiển thị OLED: hiển thị các thông tin trong quá trình người sử dụng thực hiện thiết lập chế độ hoạt động của hệ thống.
Màn hiển thị OLED: hiển thị các thông tin trong quá trình người sử dụng thực hiện thiết lập chế độ hoạt động của hệ thống.
Từ việc xây dựng kiến trúc SoC, ta có thể tiến hành xây dựng, biên dịch hệ điều hành nhúng, các trình điều khiển thiết bị cũng như các chương trình ứng dụng cho kiến trúc đã xây dựng. Quá trình đó được miêu tả ở phần tiếp theo.