Tải bản đầy đủ (.pdf) (96 trang)

Thiết kế hệ thống giám sát và điều khiển trực tuyến bằng hình ảnh dựa trên công nghệ FPGA và SystemOn Chip

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.04 MB, 96 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-----------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC

THIẾT KẾ HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN
TRỰC TUYẾN BẰNG HÌNH ẢNH DỰA TRÊN CÔNG NGHỆ
FPGA VÀ SYSTEM-ON-CHIP

NGÀNH: XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG
MÃ SỐ: ................
NGÔ LAM TRUNG

Người hướng dẫn khoa học: TS. NGUYỄN KIM KHÁNH

HÀ NỘI - 2006


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

LỜI CẢM ƠN
Đầu tiên, tác giả luận văn xin gửi lời cảm ơn sâu sắc đến thày giáo
TS. Nguyễn Kim Khánh. Thày là người trực tiếp hướng dẫn tôi thực
hiện luận văn thạc sỹ khoa học này. Những ý kiến đóng góp, những
lời nhắc nhở, động viên chân thành của thày, và đặc biệt là những
kinh nghiệm quý báu mà thày chia sẻ với tôi đã giúp đỡ tôi rất nhiều
trong thời gian qua.
Tiếp theo tôi xin gửi lời cảm ơn chân thành đến đơn vị nơi tôi đang


công tác là Bộ mơn Kỹ thuật Máy tính, Khoa Cơng nghệ Thơng tin,
Đại học Bách khoa Hà Nội. Các thày cô trong Ban chủ nhiệm cùng
các anh chị em đồng nghiệp tại Bộ mơn Kỹ thuật Máy tính đã hết sức
thơng cảm và nhiệt tình giúp đỡ tạo điều kiện về mặt thời gian và
cơng việc để tơi có thể hồn thành luận văn này.
Tơi cũng xin cảm ơn đơn vị Phịng thí nghiệm trọng điểm Thiết kế
điện tử, Đại học Bách khoa Hà Nội, là nơi đã hỗ trợ các công cụ và
môi trường làm việc cho tôi trong suốt thời gian thực hiện luận văn.
Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình và bạn bè của tơi,
những người ln dành nhiều tình cảm và sẵn sàng chia sẻ mọi khó
khăn với tơi, và bằng cách đó đã góp phần làm nên thành công của
luận văn này.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

1


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

MỤC LỤC
CHƯƠNG 1. ĐẶT VẤN ĐỀ ............................................................................................... 7
1.1.
Giới thiệu tổng quan ............................................................................................... 7
1.1.1.
Định hướng thực hiện luận văn .......................................................................... 7
1.1.2.
Giới thiệu đề tài .................................................................................................. 7

1.2.
Mơ tả hệ thống ......................................................................................................... 8
1.3.
Nội dung trình bày trong luận văn ........................................................................ 9
CHƯƠNG 2. CÁC VẤN ĐỀ LÝ THUYẾT..................................................................... 10
2.1.
Công nghệ System on Chip................................................................................... 10
2.1.1.
Khái niệm ......................................................................................................... 10
2.1.2.
Một số vấn đề về thiết kế SoC.......................................................................... 11
2.1.3.
Một số sản phẩm SoC thương mại tiêu biểu..................................................... 14
2.2.
Bộ xử lý nhúng Nios II .......................................................................................... 16
2.2.1.
Soft-core processor ........................................................................................... 16
2.2.2.
Giới thiệu chung về Nios II .............................................................................. 17
2.2.3.
Kiến trúc phần cứng của Nios II....................................................................... 18
2.3.
Giao thức USB ....................................................................................................... 21
2.3.1.
Tổng quan về giao thức .................................................................................... 22
2.3.2.
Mơ hình trao đổi dữ liệu và các đặc tả ............................................................. 25
2.3.3.
Đặc tả về giao thức ........................................................................................... 30
2.3.4.

Các phương thức truyền ................................................................................... 34
2.3.5.
Các đặc tả thiết kế mức thấp............................................................................. 37
2.3.6.
Mã hố và đồng bộ ........................................................................................... 41
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................................................... 44
3.1.
Phân tích tổng quan hệ thống .............................................................................. 44
3.1.1.
Mơ hình hoạt động của hệ thống ...................................................................... 44
3.1.2.
Các thành phần cơ bản...................................................................................... 44
3.1.3.
Lựa chọn thiết kế các thành phần ..................................................................... 45
3.2.
Thiết kế mơ hình hệ thống.................................................................................... 46
3.2.1.
Mơi trường phát triển........................................................................................ 46
3.2.2.
Thiết kế mơ hình hệ thống SoC ........................................................................ 46
3.3.
Thiết kế module USB Host/Device Controller.................................................... 49
3.3.1.
Đặc tả về chức năng của module ...................................................................... 49
3.3.2.
Đặc tả các giao diện của module ...................................................................... 49
3.3.3.
Các thành phần chức năng mức cao ................................................................. 51
3.3.4.
Các thành phần thực thi mức thấp .................................................................... 61

3.3.5.
Mô hình lập trình .............................................................................................. 69
3.3.6.
Mạch USB Transceiver .................................................................................... 72
3.4.
Thiết kế phần mềm hệ thống................................................................................ 73
3.4.1.
Module Host Controller Driver ........................................................................ 73
3.4.2.
Module giao tiếp camera .................................................................................. 76
3.4.3.
Module cài đặt TCP/IP stack ............................................................................ 78
3.4.4.
Module Web Server.......................................................................................... 81
3.4.5.
Module chương trình chính .............................................................................. 83
CHƯƠNG 4. THỬ NGHIỆM HỆ THỐNG .................................................................... 86
4.1.
Môi trường thử nghiệm ........................................................................................ 86
4.2.
Kết quả tổng hợp hệ thống ................................................................................... 86
4.3.
Thử nghiệm module USB ..................................................................................... 88
4.4.
Thử nghiệm tồn bộ hệ thống .............................................................................. 89
Ngơ Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

2



Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

CHƯƠNG 5. KẾT LUẬN ................................................................................................. 91
5.1.
Đánh giá kết quả.................................................................................................... 91
5.1.1.
Những kết quả đạt được ................................................................................... 91
5.1.2.
Những mặt hạn chế........................................................................................... 92
5.2.
Kết luận và định hướng phát triển ...................................................................... 92

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

3


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

DANH MỤC HÌNH VẼ
Hình 2-1: Mơ hình một hệ thống SoC ...................................................................................... 11
Hình 2-2: Mơ hình lập phương tài ngun ............................................................................... 12
Hình 2-3: Phân loại các phương pháp lập lịch ......................................................................... 13
Hình 2-4: Các kỹ thuật ghép nối............................................................................................... 14
Hình 2-5: Sản phẩm Alchemy Au1200 của AMD ................................................................... 14
Hình 2-6: Sơ đồ khối của Alchemy Au1200 ............................................................................ 15

Hình 2-7: Bộ xử lý Intel PXA27x ............................................................................................ 15
Hình 2-8: Sơ đồ khối bộ xử lý Intel PXA27x........................................................................... 16
Hình 2-9: Sơ đồ khối bộ xử lý Nios II...................................................................................... 18
Hình 2-10: Cấu trúc phần mềm ................................................................................................ 19
Hình 2-11: Mơ hình giao tiếp bộ nhớ của Nios II System ....................................................... 20
Hình 2-12: USB bus topology .................................................................................................. 22
Hình 2-13-Tín hiệu trên USB bus ............................................................................................ 23
Hình 2-14-Kiến trúc hồn chỉnh của một hệ thống USB ......................................................... 25
Hình 2-15-Sơ đồ khối phân tầng của hệ thống USB ................................................................ 26
Hình 2-16-Mơ hình của một hostUSB...................................................................................... 27
Hình 2-17-Topo vật lí của hệ thống USB................................................................................. 28
Hình 2-18-Topo logic của hệ thống USB................................................................................. 28
Hình 2-19-Các liên kết chức năng giữa host và slave(function) .............................................. 29
Hình 2-20-Mơ hình luồng dữ liệu............................................................................................. 29
Hình 2-21-Trường Packet Identifier ......................................................................................... 30
Hình 2-22-Trường địa chỉ và chỉ số EndPoint.......................................................................... 31
Hình 2-23-Trường dữ liệu ........................................................................................................ 32
Hình 2-24-Cấu trúc gói IN, OUT, SETUP token .................................................................... 32
Hình 2-25-Cấu trúc gói SOF .................................................................................................... 33
Hình 2-26-Cấu trúc gói DATA................................................................................................. 33
Hình 2-27-Kịch bản truyền kiểu Bulk ...................................................................................... 34
Hình 2-28-Luồng dữ liệu trong BulkTransfer .......................................................................... 35
Hình 2-29-Kịch bản truyền kiểu Control.................................................................................. 35
Hình 2-30-Thứ tự các gói tin trong ControlTransfer................................................................ 36
Hình 2-31-Kịch bản truyền kiểu Isochronous .......................................................................... 37
Hình 2-32-Sơ đồ logic khối truyền nhận tín hiệu vi sai ........................................................... 38
Hình 2-33-Trạng thái đường truyền ứng với tín hiệu Disconnect ............................................ 38
Hình 2-34-Trạng thái đường truyền của tín hiệu Connect-FullSpeed ...................................... 39
Hình 2-35- Trạng thái đường truyền của tín hiệu Connect-LowSpeed .................................... 39
Hình 2-36-Tín hiệu Reset ......................................................................................................... 39

Hình 2-37-Luồng tín hiệu khi truyền các bit ............................................................................ 40
Hình 2-38-Trạng thái đường truyền của EOP .......................................................................... 40
Hình 2-39-Mã hóa NRZI ..........................................................................................................41
Hình 2-40-Q trình bitStuffing ............................................................................................... 42
Hình 2-41-Giải thuật Stuffing .................................................................................................. 42
Hình 2-42-Nhóm bit SYNC...................................................................................................... 43
Hình 3-1: Mơ hình hoạt động của hệ thống.............................................................................. 44
Hình 3-2: Sơ đồ tổng quan ghép nối các thành phần trên ASF ................................................ 47
Hình 3-3: Cấu trúc liên kết hệ thống chi tiết ............................................................................ 48
Hình 3-4: Cấu hình các thành phần hệ thống trong SOPC Builder.......................................... 48
Hình 3-5: Mơ hình USBModule nhìn từ mức cao nhất ............................................................ 50
Hình 3-6: Module mức đỉnh ..................................................................................................... 51
Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

4


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên cơng nghệ FPGA-SoC

Hình 3-7: Mơ hình phân tầng chức năng của USBmodule....................................................... 52
Hình 3-8: Các khối chức năng chính của USBModule ............................................................ 53
Hình 3-9: USB Serial Interface Engine module ....................................................................... 53
Hình 3-10: HostSlaveMux module........................................................................................... 55
Hình 3-11: USB Host Control module ..................................................................................... 55
Hình 3-12: Rx FiFo Module ..................................................................................................... 59
Hình 3-13-Tx FiFoModule ....................................................................................................... 60
Hình 3-14: USB Serial Interface Engine .................................................................................. 62
Hình 3-15: USB Host Control Module..................................................................................... 64

Hình 3-16: USB Slave Control................................................................................................. 68
Hình 3-17: Sơ đồ Rx/Tx FiFo module...................................................................................... 69
Hình 3-18: Giao tiếp với USB module ..................................................................................... 69
Hình 3-19: Sơ đồ logic của USB1T11A................................................................................... 72
Hình 3-20: Sơ đồ các tiến trình trong hệ thống ........................................................................ 85
Hình 4-1: Cấu hình SoC thử nghiệm ........................................................................................ 86
Hình 4-2: Giao diện hệ thống giám sát và điều khiển trực tuyến ............................................. 89

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

5


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

DANH MỤC BẢNG
Bảng 1-Các loại PID................................................................................................................. 31
Bảng 2-Bảng mơ tả tín hiệu và trạng thái đường truyền vi sai................................................. 37
Bảng 3-Bảng giao diện tín hiệu của USBHostSlave module – toplevel .................................. 50
Bảng 4-Giao diện tín hiệu của SIE ........................................................................................... 54
Bảng 5-Giao diện tín hiệu của USBHostControl ..................................................................... 56
Bảng 6-Giao diện tín hiệu của USBSlaveControl .................................................................... 58
Bảng 7-Giao diện tín hiệu của RxFiFo..................................................................................... 59
Bảng 8-Giao diện tín hiệu của TxFiFo ..................................................................................... 60
Bảng 9-Các thanh ghi của USB Module .................................................................................. 72
Bảng 10: Hàm giao tiếp giữa Nios và Host Controller............................................................. 74
Bảng 11: Hàm cấu hình Host Controller và điều khiển đường truyền ..................................... 75
Bảng 12: Danh mục hàm hỗ trợ giao thức USB trên Host Controller...................................... 76

Bảng 13: Danh mục hàm giao tiếp camera............................................................................... 78
Bảng 14: Tập hàm API cung cấp bởi LWIP............................................................................. 81
Bảng 15: Danh mục hàm thao tác với hệ thống file trên RAM................................................ 82
Bảng 16: Danh mục hàm cài đặt Web Server........................................................................... 83
Bảng 17: Kết quả tổng hợp hệ thống thử nghiệm..................................................................... 87

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

6


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

CHƯƠNG 1.

ĐẶT VẤN ĐỀ

1.1. Giới thiệu tổng quan
1.1.1. Định hướng thực hiện luận văn
Sự phát triển bùng nổ của công nghệ thông tin trong những năm gần đây đã dẫn
đến những thay đổi mạnh mẽ trong đời sống kinh tế xã hội của tồn thế giới. Trong
luồng phát triển ấy, có hai lĩnh vực đóng vai trị rất quan trọng là cơng nghệ truyền
thông và công nghiệp điện tử.
Sự phát triển của cơng nghệ truyền thơng đã góp phần làm thay đổi hồn tồn
cách thức truy cập thơng tin của con người. Với mạng lưới đường truyền rộng khắp có
tốc độ cao, giá thành rẻ và các giao thức truyền tin hiện đại như TCP/IP, HTTP… con
người có thể truy cập tới các nguồn thông tin ở bất kỳ đâu, không phụ thuộc vào
khoảng cách và vị trí địa lý.

Cùng với các công nghệ truyền thông, nền công nghiệp điện tử và công nghệ thiết
kế bán dẫn đã phát triển hết sức nhanh trong thời gian gần đây và tạo ra sản phẩm là
các chip bán dẫn, các bộ xử lý có tốc độ ngày càng cao và đa năng hơn. Từ đó đã dẫn
tới sự thay đổi mang tính cách mạng ở một loạt lĩnh vực có liên quan, trong đó tiêu
biểu là công nghệ nhúng.
Ngày nay, công nghệ nhúng kết hợp với công nghệ truyền thông đã tạo ra các hệ
thống nhúng hiện đại vừa có hiệu năng cao, lại được trang bị các chuẩn truyền thông
thế hệ mới. Các hệ thống nhúng này được phát triển để thực hiện các ứng dụng ngày
càng phức tạp hơn nhằm đáp ứng nhu cầu của người dùng.
Luận văn tốt nghiệp cao học này được thực hiện nhằm hướng tới hai mục đích.
Mục đích thứ nhất là nghiên cứu sự phát triển của các hệ thống nhúng hiện đại cùng
các vấn đề liên quan tới quy trình thiết kế một hệ thống nhúng hiệu năng cao. Mục
đích thứ hai là áp dụng các nghiên cứu đó để phát triển một sản phẩm nhúng có khả
năng ứng dụng trong thực tế.
1.1.2. Giới thiệu đề tài
Trong thời gian qua, một sản phẩm kết hợp giữa công nghệ nhúng và công nghệ
truyền thông đã bắt đầu được phát triển và ứng dụng rộng rãi là các hệ thống giám sát
bằng hình ảnh qua mạng IP. Các hệ thống này thường được xây dựng dựa trên các
camera kỹ thuật số đặc biệt có khả năng kết nối mạng. Nhờ có kết nối mạng mà các
thơng tin hình ảnh do camera thu nhận có thể được truyền trên mạng và cho phép hệ
thống giám sát có thể đặt ở vị trí cách xa hiện trường.
Trên thị trường hiện nay có rất nhiều loại IP camera do các hãng khác nhau sản
xuất với tính năng và giá thành chênh lệnh rất lớn. Thông dụng nhất là các sản phẩm
do Sony, Panasonic và Axis sản xuất. Các IP camera do Axis sản xuất có giá thành dao
động từ 280USD với dòng sản phẩm cấp thấp nhất, cho tới 2800USD với dịng sản
phẩm cấp cao đa tính năng. Sản phẩm của Sony có giá thành cịn cao hơn nữa, dao
động từ trên 600USD tới gần 5000USD. Như vậy giá thành của các sản phẩm loại này
đến nay vẫn cịn rất đắt.

Ngơ Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004


7


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

Các sản phẩm trên đều được tích hợp các tính năng như truy cập mạng, hỗ trợ
web server và phần mềm quản lý qua web, tính năng điều khiển Pan-Tilt-Zoom (PTZ)
từ xa, khả năng phát hiện chuyển động…
Tuy nhiên các sản phẩm trên mới chỉ phục vụ được cho ứng dụng giám sát từ xa
chứ không cho phép ra lệnh điều khiển nếu phát hiện sự cố trong quá trình giám sát.
Khả năng điều khiển từ xa cũng mới chỉ hỗ trợ ở mức điều khiển PTZ cho các camera
chứ không thể điều khiển các thiết bị bên ngồi.
Chính vì những lý do trên mà tác giả luận văn đã lựa chọn thực hiện đề tài “Thiết
kế hệ thống giám sát và điều khiển trực tuyến bằng hình ảnh dựa trên cơng nghệ
FPGA và System-on-Chip”.
1.2. Mô tả hệ thống
Sản phẩm “Hệ thống giám sát và điều khiển trực tuyến bằng hình ảnh” thực hiện
hai chức năng chính bao gồm chức năng giám sát thời gian thực bằng hình ảnh và chức
năng điều khiển. Cả hai chức năng này đều được thực hiện qua đường truyền mạng
LAN/Internet.
Chức năng giám sát
Hệ thống cung cấp một giải pháp giám sát thời gian thực hiện đại, mới được phát
triển trên thế giới trong thời gian gần đây. Đó là giải pháp giám sát bằng hình ảnh qua
mạng IP. Hệ thống được cài đặt giao diện USB để ghép nối với thiết bị camera và một
phần mềm chuyên dụng thực hiện điều khiển và thu nhận hình ảnh thời gian thực từ
camera. Các dữ liệu này sẽ được lưu trữ tạm thời để cung cấp cho người sử dụng khi
có u cầu.

Dữ liệu hình ảnh đã thu nhận sẽ được hệ thống cung cấp tới người sử dụng thông
qua giao diện Web và giao thức HTTP. Hệ thống được cài đặt một Web Server cho
phép người dùng truy cập dễ dàng qua mạng LAN hoặc mạng Internet.
Người sử dụng có thể truy cập chức năng giám sát bằng hình ảnh của hệ thống
bằng hai phương pháp. Phương pháp đơn giản nhất là sử dụng một Web Browser để
truy cập tới địa chỉ Web của hệ thống, khi đó hình ảnh sẽ được hiển thị ngay trên Web
Browser. Phương pháp thứ hai là thông qua một phần mềm trên PC. Phần mềm này
thực hiện giao tiếp với hệ thống giám sát qua giao thức HTTP và được cài đặt các thao
tác truyền/nhận dữ liệu phù hợp với hệ thống. Các dữ liệu hình ảnh sẽ được truyền về
máy tính và được điều khiển hiển thị bởi phần mềm trên máy tính.
Chức năng điều khiển
Hệ thống cung cấp cho người dùng chức năng điều khiển trực tiếp song song với
chức năng giám sát. Với các chức năng điều khiển thơng thường, người dùng có thể
điều khiển trực tiếp các hoạt động của camera như bật, tắt, quay trái, phải, phóng to
hay thu nhỏ (điều khiển PTZ).
Hệ thống cũng cung cấp cơ chế đồng bộ cả phần cứng và phần mềm để có thể
phát triển thêm các chức năng điều khiển phức tạp hơn. Chẳng hạn, người dùng muốn
sử dụng hệ thống để điều khiển một thiết bị bên ngoài thì chỉ cần thực hiện thêm hai
thao tác tương đối đơn giản là ghép nối thiết bị đó với các tín hiệu điều khiển đã thiết
kế chờ sẵn và khai báo thêm một số thơng số thích hợp trong phần mềm của hệ thống.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

8


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC


Chức năng điều khiển cũng được cung cấp qua hai cách là giao diện Web và
chương trình ứng dụng trên PC. Nếu truy cập qua giao diện Web, người sử dụng sẽ sử
dụng các thao tác được thiết kế sẵn trong nội dung trang Web. Ngược lại, khi truy cập
bằng phần mềm trên PC, người dùng phải sử dụng các chức năng trong phần mềm để
gửi các lệnh với thơng thích hợp tới hệ thống.
Như vậy, sản phẩm “Hệ thống giám sát và điều khiển trực tuyến bằng hình ảnh”
cần đảm bảo được các nhiệm vụ như sau:
• Giao tiếp với camera để thu nhận và lưu trữ dữ liệu hình ảnh thời gian
thực.
• Cài đặt giao diện mạng Ethernet để cho phép truy cập từ xa qua mạng LAN
hoặc Internet.
• Cung cấp dữ liệu hình ảnh phục vụ các truy vấn qua mạng theo giao thức
HTTP.
• Cài đặt phần mềm Web Server để cho phép các máy tính từ xa truy cập và
hiển thị hình ảnh thời gian thực do camera thu nhận.
• Nhận các lệnh điều khiển từ người dùng qua giao thức HTTP và thực hiện
lệnh.
1.3. Nội dung trình bày trong luận văn
Sản phẩm của luận văn tốt nghiệp này là một hệ thống có độ tích hợp cao, phức
tạp và liên quan đến nhiều vấn đề công nghệ. Các nội dung đã thực hiện trong luận văn
bao gồm rất nhiều khâu từ quá trình thiết kế phần cứng cho tới phát triển phần mềm
của một hệ thống nhúng hiệu năng cao.
Trong khuôn khổ báo cáo này, tác giả chỉ xin trình bày một số nội dung quan
trọng nhất trong luận văn liên quan đến quá trình thiết kế phần cứng và phần mềm của
hệ thống.
Nội dung luận văn được tổ chức thành 5 chương như sau:
™ Chương 1: Đặt vấn đề.
Nội dung: Trình bày định hướng lựa chọn đề tài, mô tả mục tiêu của đề tài
và nội dung trình bày trong luận văn.
™ Chương 2: Các vấn đề lý thuyết.

Nội dung: Trình bày các vấn đề lý thuyết quan trọng có liên quan trực tiếp
trong q trình thực hiện luận văn.
™ Chương 3: Phân tích thiết kế hệ thống.
Nội dung: Thực hiện mơ tả q trình phân tích thiết kế hệ thống chi tiết từ
xây dựng phần cứng cho tới phát triển phần mềm.
™ Chương 4: Thử nghiệm hệ thống.
Nội dung: Trình bày các kết quả thử nghiệm hệ thống.
™ Chương 5: Kết luận.
Nội dung: Trình bày kết luận và các định hướng phát triển của luận văn.
Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

9


Luận văn thạc sỹ khoa học

CHƯƠNG 2.

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

CÁC VẤN ĐỀ LÝ THUYẾT

2.1. Công nghệ System on Chip
2.1.1. Khái niệm
System-on-Chip (viết tắt là SoC) là các hệ thống điện tử xuất phát từ ý tưởng tích
hợp tồn bộ các thành phần của một máy tính hay một hệ vi xử lý lên trên một vi mạch
bán dẫn. Trên vi mạch đó có thể có cả các thành phần chức năng số, tương tự và thành
phần hỗn hợp. Ứng dụng điển hình của SoC là trong các hệ thống nhúng.
Cơng nghệ System-on-Chip nhằm thiết kế và chế tạo các hệ thống đa chức năng
trên cùng một chip bán dẫn, nhằm rút ngắn chu kỳ phát triển sản phẩm đồng thời lại

làm tăng tính năng, tốc độ và chất lượng của sản phẩm. Với khả năng tích hợp ngày
càng cao trong công nghiệp điện tử, System-on-Chip là một hướng đi tất yếu nhằm
thay thế cho mơ hình hệ thống cổ điển được xây dựng dựa trên các vi mạch chức năng
đơn lẻ, vốn khơng tối ưu về chi phí sản xuất và hiệu năng hoạt động.
Một cách tổng quát, một vi mạch có thể được coi là SoC nếu trong đó bao gồm
các thành phần CPU, bộ nhớ, các module vào ra và liên kết hệ thống giữa 3 thành phần
đó. Các khối này có thể được nối với nhau bởi các chuẩn phối ghép bus khác nhau như
các hệ thống bus dùng riêng hoặc bus công nghiệp như AMBA bus của ARM. Quá
trình vận chuyển dữ liệu giữa các khối giao diện và bộ nhớ thường được thực hiện bởi
DMA controller nhằm làm tăng tốc độ và giảm bớt gánh nặng cho CPU.
Một thiết kế System-on-Chip thường bao gồm các thành phần sau đây:
• Một hoặc nhiều vi xử lý hoặc các bộ DSP.
• Các khối nhớ bao gồm ROM, RAM, EEPROM và Flash.
• Khối định thời và tạo xung nhịp gồm Oscillator và mạch PLL
• Một số thành phần ngoại vi cần thiết như bộ đếm, đồng hồ thời gian thực, mạch
xử lý ngắt…
• Các giao tiếp chuẩn: USB, FireWire, Ethernet, UART, SPI…
• Giao diện ghép nối tín hiệu tương tự: gồm các ADC và DAC.
• Mạch ổn áp và quản lý nguồn.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

10


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên cơng nghệ FPGA-SoC

Hình 2-1: Mơ hình một hệ thống SoC


Thơng thường, các hệ thống số/tương tự cổ điển đều bao gồm các khối trên đây,
nhưng được thiết kế thông qua việc ghép nối nhiều chip chức năng đơn lẻ để tạo thành
hệ thống hoàn chỉnh. So sánh với các hệ thống đa chip thì cơng nghệ SoC có ưu điểm
sau:
• Sản phẩm hồn thiện sẽ cần ít thành phần chip bán dẫn hơn, nhỏ gọn hơn.
• Tiêu thụ ít năng lượng hơn.
• Thời gian ra sản phẩm (Time to Market) ngắn hơn.
• Có hiệu năng cao hơn.
• Có thể áp dụng với cơng nghệ FPGA.
Tuy vậy cơng nghệ SoC cũng có một số nhược điểm
• Chi phí thiết kế ban đầu rất lớn, quy trình thiết kế phức tạp.
• Thường phải kết hợp với quy trình thiết kế và sản xuất ASIC để đạt được
hiệu năng tối ưu và làm tăng chi phí sản xuất.
• Phải tiến hành đồng thiết kế phần cứng/phần mềm ngay từ giai đoạn đầu.
2.1.2. Một số vấn đề về thiết kế SoC
Ngồi cấu trúc phần cứng mơ tả ở trên, để một SoC có thể hoạt động được thì
khơng thể thiếu các thành phần phần mềm đảm nhiệm chức năng điều khiển các thành
phần như vi xử lý, DSP, các ngoại vi và giao tiếp, đồng thời phối hợp các module đó
tạo thành ứng dụng thực tế. Như vậy, khi chế tạo một sản phẩm trên cơng nghệ SoC
địi hỏi giải quyết 2 vấn đề: xây dựng cấu hình cho chip và lập trình cho chip phù hợp
với bài tốn đặt ra. Hai vấn đề này có thể được tiến hành song song trong suốt quá
trình thiết kế và thử nghiệm chip. Khi đó q trình thiết kế một SoC chính là q trình
đồng thiết kế phần cứng và phần mềm.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

11



Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

Phần lớn các SoC thường được phát triển dựa trên các module phần cứng chuẩn.
Các module này thường được phát triển và kiểm thử từ trước, đồng thời luôn đi cùng
với các phần mềm điều khiển tương ứng. Đặc biệt với các thành phần ngoại vi truyền
thông, chẳng hạn như giao tiếp USB, ln phải có những module phần mềm cài đặt
giao thức hoạt động cụ thể đi kèm. Các module phần cứng khi được ghép với nhau,
cùng với việc kết hợp các phần mềm điều khiển sẽ tạo nên một hệ thống phức tạp
nhưng nằm hoàn toàn trên một chip bán dẫn.
Một bước quan trọng trong luồng thiết kế SoC là q trình mơ phỏng. Thơng
thường các SoC được mơ phỏng theo phương pháp FPGA prototyping. Thiết kế phần
cứng được thực hiện dựa trên môi trường mô phỏng bằng FPGA, các module phần
mềm cũng được nạp vào bộ nhớ của bản thiết kế mơ phỏng. Sau đó, hoạt động của hệ
thống về cả phần cứng và phần mềm có thể được kiểm thử và đánh giá với tốc độ và
các điều kiện hoạt động gần giống với môi trường thực của SoC.
Trong q trình thiết kế SoC cịn một số vấn đề cụ thể cần quan tâm như sau:
Vấn đề tài nguyên hệ thống
SoC có thể mang lại giải pháp mang tính tích hợp cao, đơn chip, ít sử dụng các
ngoại vi bên ngoài, đạt được hiệu năng cao trong khi sử dụng nguồn năng lượng tối ưu
hơn. So sánh với các phương pháp thiết kế đa chip dựa trên các thành phần phần cứng
đơn lẻ, SoC rõ ràng có nhiều ưu điểm vượt trội. Tuy nhiên việc đánh giá xác định kích
thước và thiết kế các tài nguyên on-chip cho SoC gặp nhiều khó khăn hơn.
Vì các tài ngun trên SoC đều được tích hợp sẵn và là cố định trên chip nên nếu
đánh giá không chuẩn xác sẽ dẫn đến việc SoC không đáp ứng được yêu cầu thực tế
hoặc gây lãng phí tài nguyên. Tất cả các hệ quả này đều làm cho chi phí phát triển sản
phẩm tăng lên rất lớn. Ngược lại, thiết kế đa chip cổ điển thường cho phép áp dụng
nhiều thông số linh động hơn như tốc độ, dung lượng nhớ, số cổng vào ra… nên sẽ
không quá phụ thuộc vào bước đánh giá tài ngun như SoC.


Hình 2-2: Mơ hình lập phương tài nguyên

Khi đánh giá ước lượng tài nguyên cho SoC, có 3 yếu tố quan trọng nhất cần xác
định bao gồm Tài nguyên CPU, Vào ra và Bộ nhớ. Hình 2-2 cho thấy mơ hình lập
phương tài ngun cho các hệ SoC. Khơng gian màu xanh (phía dưới) tương ứng với
hệ thống giàu tài ngun, trong đó các bài tốn có thể dễ dàng hồn thành trong khn
khổ các tài ngun đã có. Ngược lại, khơng gian màu đỏ (phía trên) tương ứng với hệ
Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

12


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

thống bị ràng buộc về tài nguyên, trong đó người phát triển hệ thống phải thực hiện
các thao tác tối ưu hóa hệ thống để có thể thỏa mãn các yêu cầu trên thực tế.
Hình 2-2 mới chỉ mơ tả 3 loại tài nguyên quan trọng trong một hệ thống số và đã
bỏ qua các tài nguyên khác như số chân vào ra, nguồn tiêu thụ, chi phí… Tuy nhiên
qua đây cũng cho thấy việc xác định các thông số tài nguyên của hệ thống SoC phải
dựa chặt chẽ vào các yêu cầu về phần cứng và phần mềm của bài toán, tránh trường
hợp quá thiếu hoặc lãng phí.
Thiết kế tài nguyên xử lý
Với các SoC chạy đa tiến trình, đặc biệt là các hệ SoC nhiều CPU, việc lập lịch
hoạt động cho các tiến trình và CPU đóng vai trị rất quan trọng. Trên các hệ SoC phức
tạp, tiến trình lập lịch thường được hỗ trợ luôn bằng cơ chế phần cứng. Do đó việc xác
định chính xác các tài ngun CPU cùng với cơ chế lập lịch tương ứng đóng vai trò
quyết định đối với tốc độ thực thi ứng dụng của hệ thống SoC.

Một số phương pháp lập lịch

Hình 2-3: Phân loại các phương pháp lập lịch

Thiết kế tài nguyên vào ra
Năng lực và tốc độ xử lý của thiết bị SoC phụ thuộc đáng kể vào hiệu quả của
việc trao đổi thông tin giữa các khối bên trong chip và giữa các khối bên trong và bên
ngoài chip. Hình 2-4 dưới đây mơ tả phân loại các kỹ thuật kết nối các thành phần tính
tốn, bộ nhớ và ngoại vi trong SoC với nhau.
Mỗi kỹ thuật đều có ưu và nhược điểm dựa vào các thông số như tốc độ hoạt
động, độ phức tạp, khả năng sử dụng, khả năng hỗ trợ lập trình và chi phí thực hiện…
Người thiết kế phải nắm rõ ứng dụng từ đó đưa ra quyết định lựa chọn cụ thể.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

13


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên cơng nghệ FPGA-SoC

Hình 2-4: Các kỹ thuật ghép nối

Thiết kế tài nguyên bộ nhớ
Các SoC địi hỏi tồn bộ hệ thống nhớ cũng được tích hợp trên chip, do đó các
thành phần nhớ trong SoC cần được tối ưu hóa về kích thước cũng như cấu trúc nhằm
giảm tối đa độ phức tạp của thiết kế trong khi vẫn đảm bảo tốc độ truy nhập cần thiết.
Vấn đề này thường phức tạp hơn khi thiết kế thành phần bộ nhớ đệm. Thông thường
bộ nhớ đệm trong SoC được tổ chức thành 1 mức và sử dụng SRAM tốc độ cao.

2.1.3. Một số sản phẩm SoC thương mại tiêu biểu
2.1.3.1. Alchemy™ Au1200™ Processor

Hình 2-5: Sản phẩm Alchemy Au1200 của AMD

Đây là bộ xử lý được hãng AMD thiết kế theo công nghệ SoC, dành riêng cho các
sản phẩm thiết bị giải trí di động cá nhân, như Personal Media Player, Digital Media
Adapter và cho các hệ thống đa phương tiện trên ô tô.
Các thành phần được thiết kế tích hợp sẵn trên Alchemy Au1200:
• Bộ xử lý MIPS32, 32 bit, tốc độ 333, 400 và 500MHz, tích hợp bộ DSP, 16
KB bộ nhớ đệm lệnh và 16 KB đệm dữ liệu.
• Media Acceleration Engine, hỗ trợ giải mã các loại dữ liệu đa phương tiện:
MPGE1, 2, 4, WMV9.
• Bộ điều khiển DDR SDRAM, hỗ trợ DDRI và DDR2 tốc độ tối đa 500MHz,
dung lượng 512MB.
• Bus controller hỗ trợ các chuẩn giao tiếp PIO, IDE, hỗ trợ DMA tốc độ tối
đa 80Mbps.
• Bộ mã hóa/giải mã AES bằng phần cứng.
• Bộ điều khiển LCD, điều khiển trực tiếp màn hình LCD độ phân giải tối đa
1024 x 768, 32 bit màu.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

14


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên cơng nghệ FPGA-SoC


• Digital Camera interface hỗ trợ giao tiếp với các sensor CMOS/CCD.
• Các thành phần ngoại vi: cổng nối tiếp PSC cho AC’97 CODEC, giao diện
với thẻ nhớ SD/MMC, USB 2.0 Host/Device Controller, UART…
Sơ đồ khối cấu trúc của Alchemy Au1200

Hình 2-6: Sơ đồ khối của Alchemy Au1200

2.1.3.2. Intel® PXA27x Processor

Hình 2-7: Bộ xử lý Intel PXA27x

Đây là bộ xử lý chuyên dụng cho các thiết bị cầm tay PDA do Intel sản xuất, được
áp dụng các công nghệ di động hiện đại nhất hiện nay của Intel.
Các thành phần tích hợp sẵn trên chip:
ƒ Bộ xử lý: Intel XScale® tốc độ tối đa 624MHz.
ƒ Kết nối không dây: cho phép kết nối với các mạng di động GSM/Internet
cùng các giao thức bảo mật VPN, SSL…
ƒ Tập lệnh multimedia.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

15


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

ƒ Giao diện với Camera số cho phép thu nhận và xử lý ảnh tới trên 4
Megapixel.

ƒ Bộ điều khiển LCD: hỗ trợ tối đa 2 màn hình LCD với tối đa 24 bit màu.
ƒ Cơng nghệ SpeedStep® tận dụng tối đa nguồn năng lượng.
ƒ Giao diện với bộ nhớ: 100MHz memory bus.
ƒ Các thành phần ngoại vi: USB Host/Device/OTG controller, giao tiếp thẻ
nhớ SD/MMC/Memory Stick, giao tiếp với SIM card, bộ điều khiển bàn
phím, PCMCIA…
ƒ Bộ nhớ tích hợp: tối đa 64MB bộ nhớ tích hợp sẵn trên chip.

Hình 2-8: Sơ đồ khối bộ xử lý Intel PXA27x

2.2. Bộ xử lý nhúng Nios II
2.2.1. Soft-core processor
Sự phát triển của công nghệ FPGA trong thời gian gần đây đã cho ra đời các vi
mạch FPGA đủ khả năng triển khai toàn bộ các thành phần của một hệ thống máy tính.
Khi xây dựng các hệ thống xử lý này trên công nghệ FPGA, đặc biệt là các hệ SoC,
luôn xuất hiện một thành phần trung tâm là bộ xử lý nhân mềm, được gọi là soft-core
processor.
Soft-core processor là bộ xử lý được thiết kế và mô tả bằng phần mềm bởi các
ngôn ngữ HDL, và có thể được tổng hợp và triển khai trên các cơng nghệ phần cứng
lập trình được như FPGA.
Các soft-core processor tỏ ra linh hoạt hơn các bộ xử lý truyền thống nhờ khả
năng tận dụng lợi thế của công nghệ FPGA. Do được mô tả bởi phần mềm và triển
khai trên FPGA, cấu hình của bộ xử lý có thể được thay đổi để phù hợp với ứng dụng
tại mọi thời điểm. Ngoài ra các thành phần ngoại vi cũng có thể được tích hợp thêm
trên cùng một chip với bộ xử lý nhằm làm tăng hiệu năng hoạt động và giảm thiểu chi
phí thiết kế các ngoại vi bên ngoài.
Hiện nay trên thị trường đã xuất hiện 2 sản phẩm soft-core processor phát triển
bởi 2 hãng sản xuất vi mạch FPGA lớn là Nios II của Altera và MicroBlade của Xilinx.
Những sản phẩm này đều được thiết kế dành riêng cho các dịng FPGA của hãng
Ngơ Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004


16


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

tương ứng và đều hỗ trợ quá trình đồng thiết kế phần cứng/phần mềm cũng như phát
triển hệ thống System-on-Chip.
Do điều kiện về mặt thiết bị và môi trường làm việc, luận văn này lựa chọn sử
dụng bộ xử lý Nios II của Altera trên dòng sản phẩm Stratix.
2.2.2. Giới thiệu chung về Nios II
Nios II là bộ xử lý do hãng Altera phát triển cùng với bộ phần mềm Nios II EDS
và SOPC Builder nhằm hướng tới các hệ thống nhúng hiệu năng cao dựa trên công
nghệ FPGA và System-on-Chip. Nios II được cung cấp như một thành phần trong thư
viện phần tử của SOPC builder.
Các tính năng cơ bản của bộ xử lý Nios II:
ƒ Tập lệnh, đường dữ liệu, không gian địa chỉ 32 bit.
ƒ Các thanh ghi đa năng 32 bit.
ƒ 32 nguồn ngắt ngoài.
ƒ Các lệnh nhân và chia hai số 32 bit cho kết quả 32 bit.
ƒ Cung cấp các lệnh nhân cho kết quả 64 bit và 128 bit.
ƒ Lệnh xử lý số thực dấu phảy động độ chính xác đơn.
ƒ Hỗ trợ nhiều ngoại vi on-chip, cung cấp giao tiếp với các ngoại vi và bộ
nhớ ngoài.
ƒ Chế độ debug hỗ trợ bởi phần cứng sử dụng Nios IDE.
ƒ Môi trường phát triển phần mềm dựa trên GNU C/C++.
ƒ Kiến trúc tập lệnh tương thích với tất cả các hệ thống xử lí Nios II.
ƒ Tốc độ tính trên 150 DMIPS.

Trên thực tế thiết kế, Nios II khơng bao giờ tồn tại một mình mà ln được tích
hợp thêm các thành phần như bộ nhớ và các ngoại vi on-chip, các giao diện phối ghép
với bộ nhớ và ngoại vi off-chip. Toàn bộ bản thiết kế như vậy được gọi là hệ thống xử
lý Nios II và quá trình thiết kế hệ thống Nios II được hỗ trợ đầy đủ bởi phần mềm
SOPC đi kèm.
Nios II cung cấp khả năng cấu hình lại để tăng hiệu năng của hệ thống. Chẳng
hạn, có thể bớt đi một số các module, các ngoại vi để giảm kích thước của thiết kế,
giảm giá thành sản phẩm. Rất nhiều khả năng khả chuyển có thể thực hiện:
ƒ Các chân của Nios II có thể ánh xạ vào các chân IO khác nhau của FPGA
để phù hợp với từng thiết kế.
ƒ Các chân mở rộng và tài nguyên logic có thể được dùng làm các khối logic
chức năng ngồi. Ví dụ như hệ thống xử lí Nios chỉ chiếm khoảng 5% tài
nguyên của các model chip Stratix dung lượng cao, khi đó phần tài ngun
cịn lại có thể dùng để thực hiện các chức năng khác.
ƒ Các chân mở rộng có thể dùng để kết nối với thiết bị ngoại vi ngoài. Nios
System Library cung cấp nhiều module giao tiếp giúp kết nối một các dễ
dàng với các thiết bị ngoại vi.
Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

17


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên cơng nghệ FPGA-SoC

Hình sau đây cho thấy cấu trúc các thành phần cơ bản của một hệ thống xử lý
Nios II:

Hình 2-9: Sơ đồ khối bộ xử lý Nios II


2.2.3. Kiến trúc phần cứng của Nios II
Kiến trúc Nios II mô tả lại tập lệnh của bộ nhân xử lí này. Kiến trúc của tập lệnh
là cơ sở để đặt ra các yêu cầu về kiến trúc phần cứng cho một bộ vi xử lí. Nios II
processor là thiết kế phần cứng đáp ứng theo kiến trúc tập lệnh Nios II, nó là chỉ nhân
xử lí khơng bao gồm các module ngoại vi, các module đó được thêm vào hệ thống như
những tùy chọn khi thiết kế một hệ thống hoàn chỉnh. Các thành phần của một core
Nios II được mơ tả như hình dưới.

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

18


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên cơng nghệ FPGA-SoC

Hình 2-10: Cấu trúc phần mềm

Thanh ghi
Nios II bao gồm 32 thanh ghi mục đích chung và 32 thanh điều khiển. Nios II hỗ
trợ hai chế độ hoạt động là usermode và supervisormode, nó cho phép ngăn chặn bảo
vệ các thanh ghi điều khiển khỏi các truy nhập từ mã lệnh có thể gây lỗi nghiêm trọng.
Kiến trúc của Nios II còn có thể cho phép bổ sung các thanh ghi dấu phảy động trong
tương lai.
ALU
Nios II được cung cấp dưới dạng một soft-core processor nên tập lệnh của Nios II
cũng có thể thay đổi tùy theo từng mục đích ứng dụng cụ thể. Tuy tất cả các thiết kế
Nios II đều tuân theo một kiến trúc lệnh chuẩn, nhưng tùy theo từng ứng dụng mà bản

thiết kế có thể thực hiện đầy đủ hoặc khơng đầy đủ tập lệnh đó.
Tập lệnh cơ bản của Nios II bao gồm các nhóm lệnh sau:
ƒ Các lệnh số học.
ƒ Các lệnh quan hệ.
ƒ Các lệnh logic.
ƒ Các lệnh dịch và quay bit.
Với nhiều bản thiết kế cần tiết kiệm tài nguyên hệ thống, các khối nhân/chia phần
cứng được bỏ ra khỏi cấu trúc của Nios II. Khi đó sẽ có những lệnh tồn tại trong bộ
lệnh, nhưng lại không được cài đặt cơ chế thực hiện. Nếu CPU gặp các lệnh đó sẽ thực
hiện dựa trên cách xử lí của exception. Nios II cũng cho phép người thiết kế thêm các
lệnh chuyên dụng của mình cho CPU thơng qua cơ chế Custom Instruction.
Exception và Interrupt

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

19


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

Exception là cơ chế mà Nios II dùng để xử lí các ngoại lệ, Nios II cung cấp cơ chế
xử lí ngoại lệ “phi vector”. Tất cả các ngoại lệ khi xuất hiện đều điều hướng xử lí đến
một địa chỉ gọi là: Exception Address, chương trình điều khiển ngoại lệ tại địa chỉ này
sẽ phát hiện kiểu và nguyên nhân của ngoại lệ, từ đó nó sẽ điều hướng xử lí đến tiến
trình con thích hợp, tương ứng với ngoại lệ này. Exception Address được xác định khi
thiết kế.
Nios II cung cấp 32 ngắt tương ứng với 32 mức ưu tiên khác nhau. Tương ứng với
32 ngắt này là 32 tín hiệu yêu cầu ngắt từ IRQ0 đến IRQ31. Mức độ ưu tiên ngắt được

chỉ định bằng phần mềm. Các ngắt này có thể bị chặn tồn bộ hoặc từng ngắt riêng lẻ
thơng qua các thanh ghi. Một ngắt chỉ có giá trị khi phải có đồng thời cả 3 điều kiện:
ƒ Bit PIE của thanh ghi điều khiển status nhận giá trị 1.
ƒ Có tín hiệu IRQ tương ứng với ngắt.
ƒ Bit cho phép ngắt tương ứng nhận giá trị 1.
Tổ chức bộ nhớ và vào ra

Hình 2-11: Mơ hình giao tiếp bộ nhớ của Nios II System

Bus lệnh và dữ liệu
Nios II sử dụng kiến trúc Havard, tức là các đường bus lệnh và bus địa chỉ là các
đường riêng rẽ. Cả hai được thực hiện như là các master ports theo đặc tả về giao diện
Avalon. Bus dữ liệu được nối với cả thiết bị ngoại vi và bộ nhớ trong khi bus lệnh chỉ
được nối với bộ nhớ như hình trên. Bus lệnh thực hiện một nhiệm vụ duy nhất là lấy
về lệnh được thực hiện trong chu kì lệnh tiếp theo từ bộ nhớ, bus dữ liệu thực hiện hai
nhiệm vụ là đọc và ghi dữ liệu ra bộ nhớ và ngoại vi. Nios II ánh xạ I/O theo bộ nhớ
tức là nó truy nhập ngoại vi với cùng cách thức truy nhập bộ nhớ. Bus lệnh và bus dữ
liệu chia sẻ truy nhập đến bộ nhớ, chúng truy nhập đến bộ nhớ bởi hại đường riêng rẽ
nhưng nhìn từ phía Slave port chúng được coi là một đường duy nhất.
Bộ nhớ Cache
Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

20


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

Bộ nhớ cache được dùng cho cả hai bus dữ liệu và bus lệnh, cache giúp tăng tốc

truy nhập đến các bộ nhớ chậm như SDRAM. Caches có thể điều khiển bằng phần
mềm, có thể cấu hình được trong lúc thiết kế tùy mục đích sử dụng của hệ thống. Nios
II cũng cung cấp các phương thức truy nhập bỏ qua cache.
Ánh xạ địa chỉ
Bản đồ địa chỉ cho các ngoại vi và vùng nhớ trong một hệ thống Nios II phụ thuộc
vào từng thiết kế hệ thống. Các thông số của bản đồ địa chỉ được xác định trong bước
sinh hệ thống tự động. Có 3 địa chỉ đặc biệt cần chỉ rõ:
ƒ Reset Address
ƒ Exception Address
ƒ Break handler Address
Khi phát triển ứng dụng phần mềm người lập trình sử dụng các macro và driver
do đó việc thay đổi bản đồ địa chỉ khơng ảnh hưởng tới q trình phát triển ứng dụng
JTAG debug module
Nios II cung cấp chức năng debug thơng qua cổng JTAG tích hợp sẵn, nó cho
phép gỡ lỗi on-chip bằng cách điều khiển chương trình từ PC. Module này giao tiếp
với PC qua cable JTAG của Altera, nó cung cấp các chức năng:
ƒ Tải chương trình xuống bộ nhớ
ƒ Khởi động và dừng chương trình
ƒ Đặt các Breakpoint và watchpoint
ƒ Phân tích dữ liệu trong các thanh ghi và bộ nhớ
ƒ Tìm vết các dữ liệu trong quá trình thực hiện theo thời gian thực.
2.3. Giao thức USB
Ngày nay hầu hết các máy tính đều được trang bị một hoặc nhiều cổng USB
(Universal Serial Bus). Các cổng USB đã thực sự giúp cho việc kết nối thiết bị ngoại
vi như chuột, máy in, camera với máy tính nhanh và dễ dàng hơn rất nhiều.
Trước khi chuẩn USB ra đời, máy tính chỉ được trang bị các phối ghép cổ điển
như cổng COM, cổng Parallel, PS/2 hay chuẩn SCSI. Việc ghép nối thiết bị ngoại vi
với các cổng vào ra này tỏ ra có nhiều điểm hạn chế. Các cổng phối ghép đơn giản như
COM hay Parallel chỉ hỗ trợ các thiết bị tốc độ chậm, còn các chuẩn tốc độ cao như
SCSI thì cơ chế giao tiếp lại quá phức tạp và khó áp dụng. Do đó máy tính cần có một

chuẩn phối ghép đa năng hơn, cho phép làm việc với nhiều loại ngoại vi hơn.
Chuẩn USB ra đời đã khắc phục được các nhược điểm trên đây của các chuẩn
phối ghép cổ điển một cách xuất sắc. Bắt đầu được sử dụng vào năm 1996, chuẩn USB
đã tỏ rõ các ưu điểm của mình và trở thành một giao tiếp chuẩn cho tất cả các máy tính
hiện nay, đặc biệt là từ khi phiên bản USB 2.0 ra đời năm 2000.
Một số đặc điểm của chuẩn USB:
ƒ Tốc độ truyền dữ liệu cao từ vài kbps đến 480 Mbps.
ƒ Hoạt động theo cấu hình bus, tại một thời điểm cho phép kết nối cùng lúc
127 thiết bị với máy tính.
Ngơ Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

21


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

ƒ Hỗ trợ Hot Plug and Play, cho phép cắm và rút thiết bị khỏi bus ngay khi
đang PC hoạt động.
ƒ Máy tính tự phát hiện và cấu hình cho thiết bị USB khi kết nối với bus.
ƒ Chi phí rất rẻ do được áp dụng rất rộng rãi. Quá trình thiết kế phần cứng và
phần mềm cũng đã được chuẩn hóa.
Do các ưu điểm trên nên chuẩn USB đã được áp dụng cho hầu hết các loại ngoại
vi hiện nay. Các hệ thống nhúng hiện đại cũng đã bắt đầu được trang bị giao tiếp USB
để tăng cường khả năng kết nối linh hoạt với các thiết bị khác nhau.
2.3.1. Tổng quan về giao thức
2.3.1.1. Hệ thống USB và bus topology
Một hệ thống USB được chia làm 3 thành phần như sau:
• USB interconnect

• USB device
• USB host
USB interconnect là cách thức các thiết bi USB kết nối với nhau và trao đổi dữ
liệu với host, bao gồm:
• Bus topology: là mơ hình kết nối giữa các thiết bị và host
• Inter-layer relationship: liên quan đến một nhóm các lớp, mà mỗi lớp thực
hiện một số các nhiệm vụ nào đó trong giao thức
• Mơ hình luồng dữ liệu: là cách mà dữ liệu được truyền đi thơng qua giao
thức
Bus topology

Hình 2-12: USB bus topology

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

22


Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

Topo USB có dạng hình sao được phân thành nhiều lớp, tại mỗi hình sao các Hub
đặt tại tâm của hình sao. Mỗi một segment tạo một kết nối point-to-point giữa một hub
và một device hoặc giữa hai hub với nhau. Hình trên mô tả kiến trúc của hệ thống
USB.
USB device
Các USB device có thể là một trong các loại sau :
• USB hub, là thiết bị đảm nhận cung cấp thêm các điểm kết nối với hệ thống
• Functions, là thiết bị cung cấp một chức năng cho hệ thống như kết nối

ISDN, Bộ nhớ Flash, Keyboard, Mouse…
USB host
Mỗi một hệ thống USB chỉ có một USB host cài đặt tại host computer thông qua
một HostController. HostController này co thể được thực hiện bằng phần mềm hoặc
phần cứng hoặc firmware, một root hub được gắn với Host cung cấp nhiều điểm kết
nối với host.
2.3.1.2. Giao diện vật lí
Giao diện tín hiệu của USB, bao gồm bốn đường tín hiệu: Vbus, D+,D-,GND như
hình dưới:

Hình 2-13-Tín hiệu trên USB bus

USB sử dụng tín hiệu vi sai để truyền dữ liệu, các đường D+, D- tạo thành cặp tín
hiệu vi sai. Có hai chế độ truyền dữ liệu đối với giao thức USB1.1 :
• FullSpeed: truyền dữ liệu với tốc độ 12Mb/s
• LowSpeed: truyền dữ liệu tốc độ 1.5Mb/s
Các đường tín hiệu Vbus và GND dùng để cấp nguồn cho thiết bị, VBUS hoạt
động ở mức điện áp là 5V, Chiều dài của từng segment có thể thay đổi có thể lên tới
vài mét.
2.3.1.3. Nguồn cấp
Các đặc tả về nguồn cấp bao gồm hai phần :
• Cấp nguồn: thiết bị USB có thể lấy nguồn ngay từ bus (bus-powered device)
hoặc sử dụng nguồn riêng (self-powered device).
• Quản lí nguồn: mơ tả phương pháp mà phần mềm hệ thống và các thiết bị sử
dụng nguồn trong một hệ thống nguồn cấp bởi host. Một USB host có thể có
một hệ thống quản lí nguồn riêng độc lập với USB. Phần mềm hệ thống
tương tác với hệ thống quản lí nguồn của host để điều khiển nguồn cấp
Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

23



Luận văn thạc sỹ khoa học

Hệ thống giám sát và điều khiển trực tuyến dựa trên công nghệ FPGA-SoC

chẳng hạn như các chế độ suspend và resume. Thêm nữa các thiết bị USB
thường thực hiện chức năng quản lí nguồn bằng phần mềm.
2.3.1.4. Bus Protocol
Chuẩn USB hoạt động theo cấu hình Host – Slave. Host Controller khởi tạo mọi
phiên truyền dữ liệu. Tất cả các chuyển đổi dữ liệu đều liên quan đến việc truyền đi 3
packet. Mỗi một phiên truyền dữ liệu được bắt đầu khi HostController gửi đi một gói
mơ tả chiều truyền và địa chỉ của thiết bị và chí số Endpoint. Các gói này là các gói
thuộc loại Token. USB device được gán địa chỉ cụ thể sẽ kiểm tra trường địa chỉ trong
gói tin để xác nhận đích đến của gói tin. Mơ hình truyền tin trong giao thức USB được
hình thành từ các khai niệm như: pipe, endpoint, host, tranfer, packet … Pipe là một
kết nối logic từ host đến một endpoint trong thiết bị, có hai loại endpoint là dạng luồng
(stream) và dạng tin (message). Stream là dạng luồng dữ liệu mà dữ liệu không được
định dạng theo cấu trúc trong khi pipe dạng tin thì dữ liệu được định dạng theo kiểu có
cấu trúc. Mỗi một pipe được gắn với một số các thuộc tính như băng thơng đường
truyền, kiểu truyền, đặc điểm chiều truyền của endpoint mà nó gắn kết, kích thước bộ
đệm. Các pipe được xác định khi thiết bị được cấu hình. Có một pipe đặc biệt ln tồn
tại khi thiết bị được cấp nguồn, pipe này dùng để truyền các thơng tin điều khiển, trạng
thái để cấu hình cho thiết bị, đó là Default Control Pipe.
2.3.1.5. Cấu hình hệ thống
Giao thức USB hỗ trợ việc gắn và tháo các thiết bị khỏi hệ thống bất kì thời điểm
nào, do đó hệ thống phải có một khả năng điều chỉnh lại topo vật lí của bus.
• Gắn kết một thiết bị: tất cả các thiết bị USB gắn với hệ thống bus thông qua
các cổng trên các hub (bản thân hub cũng là một thiết bị). Các Hub có cơ
chế báo hiệu khi một thiết bị được gắn vào hay tháo ra khỏi cổng nào đó của

nó. Host yêu cầu hub báo lại các báo hiệu này lên host, trong trường hợp
một thiết bị được gắn với hệ thống bus thì host đặt enable cho cổng tương
ứng và gán địa chỉ cho thiết bị vừa được kết nối thông qua Default Control
Pipe tại default address, các thiết bị khi được kết nối với hệ thống bus được
gán địa chỉ mặc định. Q trình cấu hình cho thiết bị thơng qua các default
pipe sẽ gán cho thiết bị một địa chỉ khác, địa chỉ này sẽ được dùng để trao
đổi dữ liệu với thiết bị.
• Khi tháo một thiết bị khỏi hệ thống bus thì hub mà thiết bị kết nối sẽ disable
cổng tương ứng và báo hiệu cho host về sự kiện này, nếu thiết bị được tháo
kết nối là hub thì phần mềm hệ thống phải thực hiện bỏ cả hub và tất cả các
thiết bị được gắn kết với hub này
• Bus Enumeration , là một hoạt động dùng để gán một địa chỉ duy nhất cho
thiết bị được kết nối vào bus, do các thiết bị có thể kết nối hoặc tháo bỏ bất
cứ lúc nào do đo BusEnumeration là một hoạt động thường trực, nó cũng
phải đảm nhiệm cả việc phát hiện và xử lí khi có thiết bị được tháo bỏ khỏi
hệ thống bus.
2.3.1.6. Các kiểu luồng dữ liệu
USB hỗ trợ 4 kiều truyền dữ liệu giữa host và device:

Ngô Lam Trung – Lớp Xử lý thông tin và Truyền thông 2004

24


×