Các mục đích mà luận văn này hướng tới như sau: Tìm hiểu về cách thức bắt tay truyền dữ liệu giữ thiết bị lớp LINK và thiết bị lớp PHY sử dung giao diện SPI 3 Thiết kế một hệ thống phát
Trang 1HUỲNH BÙI HOÀNG NAM
THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3
ỨNG DỤNG FPGA
Chuyên ngành : KỸ THUẬT VÔ TUYẾN VÀ ĐIỆN TỬ
Mã số ngành : 2.07.01
LUẬN VĂN THẠC SỸ
THÀNH PHỐ HỒ CHÍ MINH 012-2004
W X
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
-*** -
Cán bộ hướng dẫn khoa học : PGS.TS LÊ TIẾN THƯỜNG
Cán bộ chấm nhận xét 1 : PGS.TS Khoa Học Nguyễn Kim Sách
Cán bộ chấm nhận xét 2 : TS Phạm Hồng Liên
Luận văn thạc sỹ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SỸ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày30tháng 12 năm 2004
Trang 3- -
NHIỆM VỤ LUẬN VĂN SỸ
Họ và tên học viên: HUỲNH BÙI HOÀNG NAM Phái: Nam
Ngày, tháng, năm sinh: 29/08/1979 Nơi sinh: Bình Dương
Chuyên ngành: KỸ THUẬT VÔ TUYẾN-ĐIỆN TỬ Mã số: 2.07.01
TÊN ĐỀ TÀI: THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3
ỨNG DỤNG FPGA
II-NHIỆM VỤ VÀ NỘI DUNG:
Tìm hiểu về cách thức bắt tay truyền dữ liệu giữ thiết bị lớp LINK và thiết bị
lớp PHY sử dung giao diện SPI 3
Thiết kế một hệ thống phát và kiểm tra dữ liệu nhận giao tiếp với thiết bị lớp
PHY sử dụng giao diện SPI 3
III-NGÀY GIAO NHIỆM VỤ: 01/07/2004
IV-NGÀY HOÀN THÀNH NHIỆM VỤ: 30/11/2004
V-HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS LÊ TIẾN THƯỜNG
CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ NGÀNH (Ký tên và ghi rõ họ tên) (Ký tên và ghi rõ họ tên) (Ký tên và ghi rõ họ tên)
Nội dung và đề cương luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua
Ngày tháng năm
Trang 4Trước tiên, em xin chân thành bày tỏ lòng biết ơn sâu thầy hướng dẫn,
PGS.TS LÊ TIẾN THƯỜNG, người đã trực tiếp hướng dẫn, tận tình
chỉ bảo và tạo mọi điều kiện thuận lợi để em hoàn thành luận văn tốt nghiệp này
Em xin chân thành cảm ơn tất cả Phòng Sau Đại Học, cùng Quý thầy cô và cán bộ của Khoa Điện-Điện Tử – Trường Đại Học Bách Khoa TP.HCM đã hết lòng giảng dạy, truyền đạt kiến thức và giúp đỡ em trong suốt thời gian học tập tại Trường
Cuối cùng, xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên, giúp đỡ và hổ trợ trong suốt quá trình học tập và thực hiện luận văn
tốt nghiệp này
TP.Hồ Chí Minh, tháng 12/2004 Tác giả
Trang 5Sự phát triển bùng nổ của Internet và các ứng dụng băng rộng như Video theo yêu cầu (Video on demand) và hội nghị đa truyền thông đòi hỏi các mạng truyền dẫn phải có băng thông lớn Khi được triển khai công nghệ ghép kênh phân chia bước sóng WDM (Wavelength Division Multiplexing), các mạng truyền dẫn quang được đánh giá là một mạng truyền dẫn đầy hứa hẹn, có thể đáp ứng đầy đủ băng thông cho các ứng dụng hiện tại cũng như các ứng dụng mới trong tương lai
Trong Luận Văn này, mạng toàn quang sử dụng công nghệ ghép kênh phân chia bước sóng WDM được xem xét Luận Văn tập trung vào việc tìm hiểu công nghệ WDM và việc quản lý tài nguyên cho các yêu cầu kết nối và bảo vệ trong mạng toàn quang WDM Giải quyết bài toán định tuyến và gán bước sóng góp phần quan trọng để nâng cao hiệu suất của các mạng quang định tuyến bước sóng Luận Văn xem xét bài toán định tuyến và gán bước sóng trong cả hai trường hợp tĩnh và động Một số thuật toán định tuyến và gán bước sóng trong cả hai trường hợp tĩnh và động được tìm hiểu và trình bày; từ đó giới thiệu một phương pháp mới cho vấn đề định tuyến và gán bước sóng động và tiến hành mô phỏng
Luận văn được trình bày như sau: Phần A sẽ giới thiệu chi tiết về mạng truyền dẫn quang, công nghệ WDM và mạng toàn quang WDM Phần B tìm hiểu vấn đề định tuyến và gán bước sóng trong các mạng quang WDM và xem xét một số thuật toán Phần C mô phỏng giải pháp mới cho bài toán định tuyến và gán bước sóng và nêu ý kiến kết luận
Trang 6SPI-3 fulfills the need for system designers to target a standard POS Physical Layer interface Although targeted at implementing POS, the SPI-3 specification
is not restricted to this application It provides a versatile bus interface for exchanging packets within a communication system
SPI-3 defines the requirements for interoperable single-PHY (one PHY layer device connected to one Link Layer device) and multi-PHY (multiple PHY layer devices connected to one Link Layer device) applications It stresses simplicity of operation to allow forward migration to more elaborate PHY and Link Layer devices
In this thesis, all-SPI-n interface are studied The thesis concentrates on designing
an equipment which stands in Link Layer (Link Layer device) to check data flows
of PHY layer device using SPI 3 This equipment has some functions as following:
• Standard packet bus interface
− Fully compliant with Optical Internetworking Forum’s System Packet Interface level 3 for interconnection between test card and PHYSICAL LAYER chip
− Programmable SPI3 data bus width 8-bit 16-bit or 32-bit
− Operates at 104Mhz and 32-bit interface supporting up to 3.328Gbps cell/packet transfer
− Selectable byte level or packet level transfers with polled and direct status indication
Trang 7system interface
− Configurable single or multiple physical ports operation with in-band addressing Test card provides up to 128 physical ports for high speed STS-48/VC-4-16 and low speed STS-12/VC-4-4 (contains 28xVT1.5/21xVT2/14xVT3/7xVT6 or 12xDS3/12xE3)
− Advanced management options with error handling, SPI3 protocol violation check and fully programmable oversized packet discard feature
− Packets transfer in multiple programmable data segments supported in receive and transmit directions to increase flexibility and decrease application buffer requirements when used in multiple physical ports
• Non-standard packet bus interface
− Operates at 200Mhz and 32-bit data bus width supporting up to 6.4Gbps cell/packet transfer
Supports 128 physical ports for high speed 96/VC-4-32 and low speed 12/VC-4-4
STS-The thesis is organized as follows:
Section I: is an introduction on SPI 3 interface (purposes, application…), Programming language and tools used for designing
Section II: presents SPI 3 standard: protocol for transmitting data, function of signals on interface
Section III: presents model, functions and operational methods of device The results, conclusion and some direction to continue this topic is presented in this part
Trang 8THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
MỤC LỤC PHẦN I: GIỚI THIỆU Chương 1: Giới thiệu 1
1.1 Giới thiệu về chuẩn SPI 3 1
1.2 Giới thiệu về Verilog HDL 3
1.2.1 Khái quát Verilog HDL 3
1.2.2 Lịch sử phát triển ngôn ngữ Verilog 4
1.3 Giới thiệu về hệ điều hành LINUX thời gian thực 4
PHẦN II: CƠ SỞ LÝ THUYẾT (CHUẪN SPI 3) Chương 2: Định nghĩa liên quan đến chuẩn giao tiếp SPI 3 7
Chương 3: Cách thức truyền dữ liệu sử dụng giao diện SPI 3 9
3.1 Cách đặt tên tín hiệu 9
3.2 Độ rộng Bus dữ liệu 9
3.3 Tần số của Clock truyền 9
3.4 Vấn đề đồng bộ trong giao tiếp truyền gói 10
3.5 Tốc độ đường truyền cho các ứng dụng 12
Chương 4: Chức năng của các tín hiệu trên giao diện SPI 3 13
4.1 Hướng Phát (Transmit side) 13
4.1.1 Các tín hiệu hướng phát 13
4.1.2 Phương thức chỉ định trạng thái trực tiếp 18
Trang 9THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
4.1.2.1 Hoạt động truyền dữ liệu đơn port 18
4.1.2.2 Hoạt động truyền dữ nhiều port 19
4.1.3 Chế độ hoạt động hỏi vòng (polling) kiểm tra trạng thái port 19
4.1.3.1 Chế độ hoạt động truyền Byte-level 20
4.1.3.1 Chế độ hoạt động Packet-level 20
4.2 Các tín hiệu trên giao diện hướng thu 21
4.2.1 Ý nghĩa chức năng của các tín hiệu 21
4.2.2 Giao diện truyền dữ liệu đơn port 25
4.2.3 Giao diện truyền dữ liệu đa port 26
PHẦN C: PHẦN THIẾT KẾ HỆ THỐNG Chương 5: Các tính năng của thiết bị 27
Chương 6: Sơ đồ khối tổng quát của hệ thống 29
Chương 7: Chức năng của các khối trong hệ thống 31
7.1 Khối Tx SPI 3 (khối phát) 32
7.1.1 RAM cấu hình trong chế độ hoạt động Buffer 34
7.1.2 RAM cấu hình trong chế độ hoạt động PRBS 35
7.2 Khối Rx SPI 3 (Khối thu) 36
7.3 Khối giả lập thiết bị lớp PHY 39
7.3.1 Hướng TX 40
7.3.2 Hướng Rx 41
7.4 Cấu trúc và chức năng của thanh ghi và RAM được sử dụng để điều khiển thiết bị hoạt động 42
7.4.1 Các thanh ghi cấu hình chung của toàn bộ thiết bị 42
7.4.2 RAM và Thanh ghi khối Tx SPI 3 44
7.4.3 RAM và Thanh ghi khối Tx SPI 3 61
Trang 10THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
7.4.4 RAM và Thanh ghi khối giả lập lớp PHY 83
Chương 8: Kết quả, kết luận và hướng phát triển 96
8.1 Kết quả thực hiện của đề tài 96
8.1 Hạn chế của đề tài 97
8.2 Hướng phát triển 97
Phụ luc A – FPGA 98
Phụ luc B – Ngôn ngữ Verilog 106
Tài liệu tham khảo 120
Trang 11THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình giao tiếp SPI kết nối giữa thiết bị lớp LINK và thiết bị lớp PHY
2
Hình 1.2 Mô hình giao tiếp SPI truyền gói dữ liệu trên SONET 3
Hình 4.1 Giao tiếp đơn port không định địa chỉ in-band 18
Hình 4.2 Giản đồ thời gian hướng Tx .19
Hình 4.3 Giản đồ thời gian quá trình kiểm tra trạng thái port 20
Hình 4.4 Giao diện truyền dữ liệu đơn port 25
Hình 4.4 Giao diện truyền dữ liệu nhiều port 26
Hình 5.1 Sơ đồ khối tổng quát của hệ thống 27
Hình 6.1 Sơ đồ khối chức năng tổng quát của hệ thống 29
Hình 6.2 Giao diện vật lý của SPI 3 30
Hình 7.1 Sơ đồ khối chức năng của thiết bị ở hướng phát (Tx SPI 3) 32
Hình 7.2 Sơ đồ khối chức năng của thiết bị ở hướng phát (Tx SPI 3) 34
Hình 7.3 Cấu trúc của bộ nhớ khối Tx SPI 3 ở PRBS mode 35
Hình 7.4 Sơ đồ khối chức năng của thiết bị ở hướng thu (Rx SPI 3) 36
Hình 7.5 Khối Rx memory 37
Hình 7.6 Sơ đồ khối quản lí bộ nhớ hướng Rx SPI 3 38
Hình 7.7 Sơ đồ khối khối giả lập thiết bị lớp PHY 37
Trang 12THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
Lời mở đầu
SDH/SONET ra đời cuối thập niên 1980 SDH/SONET trở thành một phương tiện hiệu quả và tiết kiệm cho các nhà cung cấp quản lý mạng Mạng có thể dễ dàng thích nghi với nhu cầu tăng băng thông của các ứng dụng và dịch vụ Khuynh hướng hiện này của thị trường viễn thông là tăng thị phần của kỹ thuật SDH/SONET Bởi vì chất lượng của SDH/SONET hơn hẳn các kỹ thuật khác như PDH, ngày càng nhiều nhà cung cấp dịch vụ chuyển sang kỹ thuật SDH/SONET
SPI 3 được phát triển cung cấp một giao diện truyền tả dữ liệu đơn giản,
đa năng và dễ dàng để truyền gói dữ liệu trên mạng SDH/SONET Giao diện SPI được sử dụng rất nhiều trong các ứng dụng và trở thành một thành phần không thể thiếu trong các ứng dụng viễn thông
Do đó tác giả chọn hướng nghiên cứu và thiết kế hệ thống test dữ liệu thực hiện việc bắt tay truyền dữ liệu trên hệ thống SDH/SONET sử dụng giao diện SPI 3 để thực hiện luận văn tốt nghiệp Các mục đích mà luận văn này hướng tới như sau:
Tìm hiểu về cách thức bắt tay truyền dữ liệu giữ thiết bị lớp LINK và thiết bị lớp PHY sử dung giao diện SPI 3
Thiết kế một hệ thống phát và nhận dữ liệu giao tiếp với thiết bị lớp PHY sử dụng giao diện SPI 3 có các tín năng sau
Trang 13THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
- Có thể lập trình giao diện có độ rộng bus truyền dữ liệu là bit, 16-bit hay 32-bit
8 Khi hoạt động tại tần số 104Mhz và bus dữ liệu 32-bit thì có thể cung cấp tốc độ truyền tải packet lên đến 3.328Gbps
- Truyền dữ liệu ở cấp độ packet level với cách thức bắt tay là hỏi vòng (polling)
- Tùy chọn phát odd/even parity ở hướng Tx và kiểm tra odd/even parity ở hướng nhận
- Thiết kế hổ trợ đến 128 port cho việc truyền tải gói dữ liệu
- Hệ thống hổ trợ định dạng các loại tải dữ liệu được phát : ATM,GFP,HDLC
- Đảm bảo tính ngẫu nhiên của luồng dữ liệu phát trên hệ thống SONET (sử dụng các đa thức sinh tạo chuỗi ngẫu nhiên PRBS)
Từ yêu cầu và mục đích như vậy, nội dung quyển luận văn này sẽ được trình bày theo bố cục như sau:
Luận Văn gồm 3 phần
Phần 1: Giới thiệu
Phần này giới thiệu một số nét khái quát cơ bản về đề tài bao gồm: giới thiệu về giao diện truyềndữ liệu SPI 3 và ứng dụng của nó trong việc truyền gói trên mạng SDH/SONET Phần này cũng giới thiệu về ngôn ngữ được sử dụng để thiết kế hệ thống và hệ điều hành được sử dụng để điều khiển hoạt động của hệ thống
Trang 14THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
Phần 2: Cơ sở lý thuyết (chuẩn SPI 3)
Trình bày tóm tắt một số lý thuyết cơ bản liên quan đến phương thức bắt tay truyền dữ liệu trên giao diện SPI 3
Chương 2: Định nghĩa liên quan đến chuẩn giao tiếp SPI 3
Đề cập đến các định nghĩa liên quan đến giao tiếp SPI nói chung, vai trò và vị trí của giao tiếp trong ứng dụng viễn thông
Chương 3: Cách thức truyền dữ liệu sử dụng giao tiếp SPI 3
Đề cập đến vấn đề đặt tên các tín hiệu của giao diện, độ rộng bus dữ liệu, tần số clock hoạt đông của giao tiếp, vấn đề đồng bộ trong việc truyền gói dữ liệu và tốc độ đường truyền ứng dụng cho giao tiếp này
Chương 4: Chức năng của các tín hiệu trên giao diện SPI 3
Chương này trình bày ý nghĩa và chức năng của từng tín hiệu được sử để thực hiện việc truyền gói dự liệu giữa thiết bị lớp LINK và thiết bi lớp PHY
Phần 3 : Phần thiết kế hệ thống
Phần này gồm 4 chương: giới thiệu về cấu trúc thiết kế, cách thức hoạt động của hệ thống và kết quả thu được sau thời gian thực hiện luận văn
Chương 5: Các tính năng của thiết bị
Các tín năng mà hệ thống sẽ hổ trợ
Chương 6: Sơ đồ khối tổng quát của hệ thống
Giới thiệu sơ đồ khối thiết kế của hệ thống, chức năng và nhiệm vụ của các khối chính trong hệ thống
Chương 7: Chức năng của các khối trong hệ thống
Trình bày chức năng chi tiết của từng khối trong hệ thống
Trang 15THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG
Chương 8: Kết quả thực hiện, kết luận và hướng phát triển
Trình bày kết quả thu được, những mặt hạn chế khi thực hiện đề tài và giới thiệu một số hướng phát triển tiếp theo
Do thời gian và trình độ có hạn nên kết quả thu được chỉ dừng lại ở giai đoạn cơ bản Tác giả mong rằng sẽ nhận được nhiều ý kiến đóng góp và xây dựng để có thể tiếp tục phát triển và hoàn thiện đề tài trong thời gian sắp tới Tôi xin chân thành cảm ơn!
Tp.Hồ Chí Minh tháng 12/2004
Tác giả
Trang 161
GIỚI THIỆU
1.1 Giới thiệu về chuẩn SPI 3
Chuẩn SPI 3 đưa ra một giao thức để kết nối các thiết bị lớp Vật lí (Physical Layer: PHY) đến các thiết bị lớp Liên kết (Link Layer) thực hiện việc truyền gói dữ liệu trên SONET SPI 3 (POS-PHY 3) đáp ứng nhu cầu đối với các nhà thiết kế hệ thống nhằm thiết kế một giao diện lớp vật lí truyền gói dữ liệu trên SONET chuẩn Mặc dù mục tiêu thiết kế là để thực hiện việc truyền gói dữ liệu trên SONET, chuẩn giao tiếp này cũng được sử dụng cho các ứng dụng khác Nó cung cấp một giao diện bus linh động dùng để trao đổi các gói dữ liệu bên trong một hệ thống truyền thông SPI 3 đã được phát triển với sự hợp tác với nhóm phát triển SATURN bao gồm tất cả các ứng dụng có tốc độ truyền lên đến 2.4Gbit/s SPI 3 định nghĩa các yêu cầu để các ứng dụng PHY đơn (một thiết bị lớp PHY kết nối đến một thiết bị lớp LINK) và các ứng dụng multi-PHY (nhiều thiết bị lớp PHY kết nối đến một thiết bị lớp LINK) có thể cùng hoạt động SPI 3 nhấn mạnh tính đơn giản của hoạt động truyền dữ liệu cho phép hướng đến các thiết bị lớp LINK và lớp PHY phức tạp hơn
Tài liệu chuẩn này định nghĩa:
- Cấu trúc vật lí của POS-PHY bus
- Giao thức báo hiệu để truyền dữ liệu
- Cấu trúc dữ liệu thường dùng để lưu trữ dữ liệu vào trong các FIFO
Các thông tin trong chuẩn này được đưa ra như là một chuẩn tham khảo đối với các nhà phát triển khác nhau của các mạch tích hợp hay các thiết bị cấp hệ thống
Trang 17Transmit Link Layer Device
Receive Link Layer Device
Data
Transmit Interface
Status Data Status
Receive Interface
System Packet Interface (SPI)
System Packet Interface (SPI-3)
PHY Device
S y s t e m t o O p t i c s
Hình 1-1 Mô hình giao tiếp SPI kết nối giữa thiết bị lớp LINK và thiết bị lớp PHY
Trang 18RERR REOP RSOP RVAL
A B
RXDCK RXDSC
RXS A
S y s t e m t o O p t i c s
O p t i c s t o S y s t e m
RFCLK RENB RDAT[31:0]
TX
RX
Hình 1-2 Mô hình giao tiếp SPI truyền gói dữ liệu trên SONET
1.2 Giới thiệu về Verilog HDL
1.2.1 Khái quát Verilog HDL
Verilog HDL là một trong hai ngôn ngữ mô tả phần cứng thông dụng nhất hiện
nay được sử dụng thiết kế phần cứng Ngôn ngữ còn lại là VHDL
Verilog HDL mô phỏng các mạch điện tử và hệ thống Được ứng dụng để thiết
kế mạch điện tử, Verilog tham gia kiểm tra trong quá trình chạy mô phỏng, phân tích
việc định thời, phân tích kiểm tra và tổng hợp
Verilog HDL là chuẩn của IEEE – số 1364 Các văn bản chuẩn được biết là
“Tham khảo ngôn ngữ”, hoặc LRM Nó là văn bản chính xác và đầy đủ của ngôn ngữ
Verilog HDL
Chuẩn IEEE 1364 đồng thời định nghĩa về giao diện ngôn ngữ lập trình, hoặc PLI
Đây là một tập hợp các thủ tục phần mềm cho phép liên hệ hai chiều giữa Verilog và
các ngôn ngữ khác (thường là C)
Trang 19Ngôn ngữ Verilog HDL có khả năng mô tả bản chất xử lý, luồng dữ liệu hoặc các
thành phần cấu trúc của một thiết kế, thời gian trễ và cơ chế tổng hợp dạng sóng cho
phép giám sát các đáp ứng và kiểm tra lỗi, tất cả những thao tác trên được thực hiện
với cùng một ngôn ngữ Hơn nữa, Verilog HDL cung cấp một giao diện ngôn ngữ lập
trình mà qua đó, nội dung của một thiết kế có thể được truy xuất trong khi chạy mô
phỏng bao gồm cả việc giám sát tiến trình mô phỏng
Verilog HDL không chỉ định nghĩa cú pháp mà còn định nghĩa rõ ràng ý nghĩa
mô phỏng cho mỗi cấu trúc ngôn ngữ Do đó, những mô hình được viết bằng ngôn ngữ
này có thể được kiểm tra trong phần mô phỏng của Verilog HDL Verilog HDL thừa
kế rất nhiều các cấu trúc, các câu lệnh của ngôn ngữ lập trình C Verilog HDL cung
cấp rất nhiều khả năng mô phỏng, một số rất phức tạp, tuy nhiên phần cốt lõi cơ bản
của ngôn ngữ khá đơn giản và nó cũng đủ để mô phỏng hầu hết các ứng dụng
1.2.2 Lịch sử phát triển ngôn ngữ Verilog
Ngôn ngữ Verilog HDL được Gateway Design Automation phát triển lần đầu tiên
vào năm 1983 như là một ngôn ngữ dùng để mô tả phần cứng cho các sản phẩm mô
phỏng của họ Lúc bấy giờ, Verilog HDL là một ngôn ngữ thuộc chủ quyền riêng,
nhưng nhờ vào sự phổ biến của các sản phẩm mô phỏng mà Verilog HDL đã được
chấp nhận như một ngôn ngữ thực tiễn và khả dụng đối với nhiều nhà thiết kế Sau
những cố gắng để tăng cường sự phổ biến của ngôn ngữ, Verilog HDL đã được sử
dụng rộng rãi từ năm 1990 Tổ chức Open Verilog HDL International (OVI) được
thành lập để phát triển Verilog HDL Vào năm 1992, OVI quyết định chuẩn hóa
Verilog HDL như một chuẩn của IEEE Những nỗ lực này cuối cùng cũng thành công
và Verilog Hardware Description Language trở thành một tiêu chuẩn của IEEE vào
năm 1995
1.3 Giới thiệu về hệ điều hành LINUX thời gian thực
• Nhiệm vụ của hệ điều hành
Phần này trình bày những nhiệm vụ cơ bản của hệ điều hành, bao gồm: quản lý
task (nhiệm vụ) và phân chia thời gian (scheduling), dịch vụ ngắt, liên lạc giữa các
tiến trình và đồng bộ, quản lý bộ nhớ
− Quản lý task
Quản lý task là một nhiệm vụ hàng đầu của hệ điều hành: task phải được tạo ra
và xóa đi khi hệ điều hành đang hoạt động; task có thể thay đổi mức ưu tiên của nó,
thay đổi ràng buộc thời gian, bộ nhớ cần thiết; … Quản lý task đối với một hệ điều
hành thời gian thực còn khó khăn hơn hệ điều hành thông thường: nếu một task được
tạo ra, nó phải được cấp bộ nhớ nó cần mà không bị trễ, bộ nhớ này phải được khóa
Trang 20cứng trên bộ nhớ chính để tránh bị trễ do dịch vụ swapping; thay đổi mức độ ưu tiên
trong thời gian chạy ảnh hưởng đến đáp ứng thời gian chạy của toàn hệ thống và từ đó
có thể đoán trước được điều đó ảnh hưởng quan trọng đến hệ điều hành thời gian thực
như thế nào Vì vậy, quản lý tiến trình động là một vấn đề nhức đầu đối với hệ điều
hành thời gian thực
Trong thực tế, nhiều task hoạt động ở cùng một thời điểm, và hệ điều hành phải
có nhiệm vụ chia sẽ tài nguyên hiện có cho các task CPU là một trong những tài
nguyên quan trọng và việc quyết định chia sẽ CPU như thế nào cho các task được gọi
là sắp xếp thời gian (scheduling)
Hệ điều hành thời gian thực và hệ điều hành thông thường sử dụng các giải thuật
sắp xếp thời gian khác nhau Chúng đều sử dụng theo cùng một nguyên lý, như cách
ứng dụng khác nhau để thỏa mãn các tiêu chuẩn thực thi khác nhau Một hệ điều hành
thông thường hướng tới mức đạt được trung bình cao nhất, còn hệ điều hành thời gian
thực hướng tới tính đáp ứng tiền định
− Dịch vụ ngắt
Hệ điều hành phải có khả năng phục vụ các phần cứng ngoại vi, như: bộ định
thời, motor, cảm biến, thiết bị liên lạc, ổ đĩa,… Tất cả chúng có thể yêu cầu sự chú ý
của hệ điều hành theo các không đồng bộ vào thời điểm chúng cần hệ điều hành sử
dụng, hệ điều hành phải đảm bảo nó luôn sẵn sàng phục vụ các yêu cầu đó Các loại
yêu cầu đòi hỏi sự chú ý được gọi là ngắt Ngắt được chia làm hai loại: ngắt cứng và
ngắt mềm
Với ngắt cứng, thiết bị ngoại vi có thể đặt một bit trên kênh phần cứng cụ thể để
kích thích bộ xử lý để báo hiệu thiết bị cần dịch vụ Kết quả là bộ xử lý lưu lại trạng
thái hiện tại của nó, và nhảy vào địa chỉ của nó trong bộ nhớ đã được kết nối với phần
cứng này lúc khởi động
Với ngắt mềm, nhiều bộ xử lý có sẵn các chỉ thị phần mềm khi sản xuất, các chỉ
thị giúp sinh ra các ngắt cứng từ phần mềm Kết quả là bộ xử lý nhảy vào một địa chỉ
đã được định trước
− Liên lạc và đồng bộ
Liên lạc giữa các tiến trình (Inter-Process Communication) là một tập các chức
năng có từ thời ban sơ Nhờ vào chúng, hệ điều hành có thể đáp ứng được yêu cầu
trao đổi thông tin giữa các task và đồng bộ các hoạt động của task Còn hệ điều hành
thời gian thực thì phải liên lạc và đồng bộ theo các tiền định
− Quản lý bộ nhớ
Các task khác nhau trong hệ thống đều yêu cầu một phần của bộ nhớ hiện có,
thường được đặt ở một địa chỉ phần cứng cụ thể Nhiệm vụ của hệ điều hành là cấp
cho mỗi task dung lượng bộ nhớ nó cần, ánh xạ bộ nhớ thực vào bộ nhớ đã dùng trong
Trang 21các task khác, thực hiện các hoạt động thích hợp khi task sử dụng bộ nhớ mà nó không
được cấp
• Hệ điều hành Linux thời gian thực
Bộ sắp xếp thời gian của hệ điều hành Linux thời gian thực xử lý nhân (kernel) hệ
thống như các tiến trình rỗi Linux chỉ thực thi khi không có task thời gian thực nào để
chạy và nhân thời gian thực đang nằm chờ Task không thể ngăn các ngắt hoặc cản
chúng đạt mức ưu tiên cao hơn Dù đang ở bất kỳ trạng thái nào, thời gian đáp ứng
cho các ngắt không thể bị chậm trễ Khi một ngắt xảy ra, nhân thời gian thực can
thiệp ngắt và xác định sẽ gởi đi các gì
Linux thời gian thực tách cơ chế nhân thời gian thực ra khỏi cơ chế nhân Linux
thông thường để có thể tối ưu một cách độc lập và giữ cho nhân thời gian thực thật
nhỏ gọn và đơn giản
Linux thời gian thực được thiết kế để các nhân thời gian được không bao giờ bị chờ
để giải phóng bất kỳ tài nguyên nào Nhân thời gian thực không trực tiếp yêu cầu bộ
nhớ, chia sẽ clock hoặc đồng bộ cấu trúc dữ liệu, ngoại trừ một số tình huống cần điều
khiển chặc chẽ
Có hai biến thể của Linux thời gian thực cứng: RTLinux và RTAI RTLinux được
phát triển ở Viện kỹ thuật New Mexico bởi Micheal Barabanov dưới sự chỉ đạo của
giáo sư Victor Yodaiken Real-Time Application Interface (RTAI) được phát triển ở
Dipartimento di Ingeneria Aerospaziale, Politecnico di Milano bởi giáo sư Paolo
Mantegazza
Trong hệ điều hành RTLinux và RTAI, tất cả các ngắt được khởi tạo bởi nhân thời
gian thực và được chuyển cho Linux chỉ khi không có task nào đang thực thi
Trong RTLinux và RTAI, nhân thời gian thực, tất cả các thành phần của nó và ứng
dụng thời gian thực đều chạy trong không gian địa chỉ nhân Linux như là các module
nhân Khi một module nhân được nạp vào hệ điều hành, nó tự khởi tạo để sẵn sàng
phục vụ Module nhân có thể được nạp và giải phóng một cách linh động
Thuận lợi có được khi chạy hệ thống thời gian thực trong không gian địa chỉ nhân
là thời gian chuyển đổi giữa các task được tối thiểu đi Một bất lợi lớn nhất là khi có
lỗi trong task thời gian thực sẽ làm toàn bộ hệ thống bị hỏng, bởi vì không có sự tách
biệt trong không gian bộ nhớ được bảo vệ cho các task riêng lẽ
Trang 222
ĐỊNH NGHĨA LIÊN QUAN ĐẾN CHUẨN
GIAO TIẾP SPI 3
Giao tiếp SPI 3 định nghĩa giao tiếp các thiết bị lớp vật lí SONET/PDH và các thiết bị lớp LINK, giao tiếp này có thể được sử dụng để thực hiện các giao thức dựa trên gói như HDLC và PPP
PHY
PMD Device Layer Link Facility Interface PHY-Link Interface
Facility : Cáp quang, cáp xoắn, cáp đồng trục
Link Layer : Lớp chức năng chuyển mạch
PHY : Lớp vật lí
PMD : Lớp phụ thuộc môi trường vật lí
SPI 3 định rõ giao diện PHY-LINK Facility Interface (SONET OC-3) được định nghĩa bởi một số tổ chức định chuẩn quốc gia và quốc tế trong đó có BELLCORE và ITU
Trang 23Chức năng chính của thiết bi này là : Thiết bị được sử dụng để kiểm tra các tính năng của các thiết bị mạng truyền dữ liệu giữa lớp vật lí (Physical Layer Device) và thiết bị lớp Link (Link Layer Device) sử dụng giao thức SPI 3 thông qua giao diện vật
lí SPI 3 Thiết bị giao tiếp với thiết bị ứng dụng lớp vật lí thông qua giao tiếp SPI 3 của thiết bị đó
Thiết bị hổ trợ giao diện: SPI level 3 (SPI3) với độ rộng bus dữ liệu 8-bit, 16-bit và 32-bit, 128 physical port Độ dài segment dữ liệu có thể lập trình được: 64/128 bytes
Đối với các gói dữ liệu chiều dài thay đổi, Thiết bị test cung cấp giao tiếp SPI3 được định nghĩa bởi The Optical Internetworking Forum OIF Giao tiếp SPI3 được phát triển cho các ứng dụng truyền tải gói dữ liệu giữa thiết bị lớp vật lí và thiết bị lớp Link SPI3 dùng cho tất cả các ứng dụng có bit rates lên đến 6.4Gbps với 200Mhz system clock
Thiết bị kiểm tra này cung cấp các mode hoạt động truyền dữ liệu nhiều port, như được định nghĩa trong tài liệu tham khảo (SPI3 modes) Trong SPI3 mode, các port được truy xuất bằng địa chỉ in-band (7 bit đại chỉ)
Trang 243
CÁCH THỨC TRUYỀN DỮ LIỆU SỬ DỤNG
GIAO DIỆN SPI 3
3.1 Cách đặt tên tín hiệu
Giao diện truyền luồng dữ liệu từ thiết các thiết bị lớp LINK đến thiết bị lớp vật lí PHY được đặt tên là giao diện phát (Transmit Interface) Giao diện luồng dữ liệu được truyền từ thiết bị lớp vật lí đến thiết bị lớp LINK được xem là giao diện nhận (Receive Interface)
3.2 Độ rộng Bus dữ liệu
Các thiết bị có thể tương thích với chuẩn SPI 3 (POS-PHY) hổ trợ cấu trúc bus dữ liệu 32-bit hoặc 8 bit hoắc có hổ trợ cả hai Giao diện bus là Point-to-Point (một ngõ
ra chỉ điều khiển một tải ngõ vào) chính vì vậy bus dữ liệu 32-bit sẽ chỉ hỗ trợ cho một thiết bị Để hỗ trợ cho nhiều thiết bị có tốc độ bit thấp hơn với các kết nối Point-to-Point, cấu trúc bus dữ liệu 8-bit được sử dụng Vì vậy mỗi thiết bị lớp vật lí sẽ sử dụng giao diện 8-bit để giảm tổng số lượng pin được yêu cầu
Để hỗ trợ cho việc truyền các gói dữ liệu có chiều dài thay đổi, các tín hiệu RMOD[1:0] được được định nghĩa để định rõ số lượng byte hợp lệ trong cấu trúc bus dữ liệu 32-bit Mỗi double-word phải chứa 4 byte hợp lệ của dữ liệu gói cho đến khi double-word cuối cùng của việc truyền gói dữ liệu được đánh dấu bởi các tín hiệu REOP hoặc TEOP Double-word cuốic cùng của việc truyền dữ liệu này chứa từ 1 đến 4 byte hợp lệ được xác định bởi giá trị của RMOD[1:0] hoặc TMOD[1:0]
3.3 Tần số của Clock truyền
Các thiết bị có thể tương thích với POS-PHY có thể cung cấp tần số clock truyền dữ liệu lên đến 104Mhz Một số thiết bị có thể hổ trợ hoạt động ở nhiều tần số khác nhau Nói chung, các thiết bị được thiết kế cho các ứng dụng một hay nhiều thiết bị lớp PHY, ở đó tốc độ ở lớp PHY tổng cộng đạt gần 622 Mbit/s sẽ sử dụng giao diện với cấu trúc bus dữ liệu 8-bit dữ liệu với giá trị clock của FIFO 104Mhz Các thiết bị
Trang 25được thiết kế cho các ứng có tốc độ ở lớp PHY tổng cộng đạt gần 2.4 Gbit/s sẽ sử dụng giao diện với cấu trúc bus dữ liệu 32-bit dữ liệu với giá trị clock của FIFO 104Mhz
3.4 Vấn đề đồng bộ trong giao tiếp truyền gói
Giao diện truyền gói dữ liệu hổ trợ việc truyền gói dữ liệu ở hướng phát và hướng nhận tại giá trị tốc độ clock độc lập với tốc độ bit của đường truyền (line bit rate) Với yêu cầu như vậy, các thiết bị lớp vật lí phải cung cấp việc tách riêng tốc độ gói bằng cách sử dụng các FIFO
Để đơn giản hóa việc giao tiếp giữa các thiết bị lớp LINK và các thiết bị lớp vật lí và để hổ trợ các giao diện nhiều thiết bị lớp PHY người ta sử dụng các FIFO Các tín hiệu điều khiển đều được cung cấp đến thiết bị lớp LINK và PHY cho phép cả hai thực hiện việc điều khiển luồng dữ liệu Bởi vì giao tiếp bus truyền là Point to Point, giao tiếp hướng nhận của thiết bị lớp vật lí truyền dữ liệu đến thiết bị lớp LINK Đối với giao diện hướng phát, giá trị ngưỡng báo trạng thái sẵn sàng nhận dữ liệu của FIFO được thực hiện ở mức byte dữ liệu
Ở hướng nhận, khi thiết bị lớp vật lí đã nhận được những byte cuối của gói dữ liệu truyền (một gói nhỏ đã truyền xong hay những byte cuối của một gói dữ liệu lớn) hay là đã nhận được số lượng byte được định nghĩa trước trong FIFO hướng nhận của nó, nó gởi địa chỉ in-band theo sau là dữ liệu của FIFO đến thiết bị lớp LINK Dữ liệu trên bus của giao diện được đánh dấu với tính hiệu RVAL được tích cực Với thiết bị lớp PHY nhiều port với nhiều FIFO, Việc phát dữ liệu trên mỗi port được thực hiện theo cơ chế round-robin khi đã có dữ liệu đầy đủ trong FIFO của nó Thiết bị lớp LINK có thể dừng quá trình truyền luồng dữ liệu bằng cách không tích cực tín hiệu RENB
Ở hướng phát khi thiết bị lớp vật lí có đủ bộ nhớ để chứa số lượng byte đã được định nghĩa trước trong FIFO hướng phát của nó, nó sẽ thông báo cho thiết bị lớp LINK biết bằng cách tích cực tín hiệu sẵn sàng nhận gói dữ liệu (TPA) Thiết bị lớp LINK sau đó có thể ghi địa chỉ in-band theo sau là dữ liệu gói đến thiết bị lớp PHY sử dụng tín hiệu báo dữ liệu hợp lệ (TENB) Thiết bị lớp LINK sẽ giám sát việc chuyển đổi trạng thái tín hiệu TPA từ cao xuống thấp để biết được FIFO trong thiết bị lớp PHY là gần đầy (số lượng byte được ghi vào trong FIFO có thể do người sử dụng lựa chọn nhưng phải được định nghĩa trước) và thiết bị lớp LINK sẽ trì hoãn việc truyền dữ liệu để tránh việc tràn FIFO
SPI 3 định nghĩa việc điều khiển truyền dữ liệu ở cả hai mức: byte và packet level trong hướng phát Khi truyền dữ liệu ở cấp độ byte, thông tin về trạng thái của FIFO được cập nhật trên mỗi chu kì clock truyền Khi truyền dữ liệu ỡ cấp độ gói, thông tin
Trang 26về trạng thái của FIFO áp dụng cho các segment dữ liệu Khi sử dụng truyền dữ liệu ở mức byte, phải sử dụng cách chỉ định thông tin trạng thái trực tiếp Trong trường hợp này, thiết bị lớp PHY cung cấp thông tin trạng thái sẵn sàng nhận gói dữ liệu hướng phát của port được chọn (STPA) Tương tự như vậy, thiết bị lớp vật lí có thể cung cấp truy xuất trực tiếp đối với tín hiệu cho biệt trạng thái sẵn sàng nhận gói dữ liệu ở hướng phát của tất cả các port trong thiết bị lớp vật lí nếu số lượng port ít Khi truyền dữ liệu ở cấp độ gói, thiết bị lớp LINK có thể thực hiện việc kiểm tra trạng thái các FIFO của thiết bi lớp PHY Thiết bị lớp LINK có thể sử dụng tín hiệu địa chỉ port truyền TADR[] để kiểm tra trạng thái của từng port của thiết bị lớp PHY Thông tin về trạng thái FIFO của tất cả các port được đáp ứng sử dụng một tín hiệu PTPA duy nhất
Do bản chất kích thước thay đổi của các gói dữ liệu không cho phép bất kì sự đảm bảo nào liên quan đến số lượng byte sẳn sàng nhận, ở cả hai hướng phát và thu, thông tin trạng thái sẵn sàng nhận gói dữ liệu hướng phát của port được chọn được gởi tới thiết bị lớp LINK sử dụng tín hiệu STPA và thông tin báo dữ liệu truyền hợp lệ được gởi từ thiết bị lớp PHY đến lớp LINK sử dụng tín hiệu RVAL STPA và RVAL luôn luôn phản ánh trạng thái của port được chọn RVAL cho biết dữ liệu hợp lệ đang được truyền trên bus dữ liệu RDAT và khi được định nghĩa như vậy việc truyền dữ liệu có thể được sắp sếp đồng bộ tương ứng với các giới hạn của gói dữ liệu
Việc lựa chọn port thiết bị lớp PHY được thực hiện bằng cách định địa chỉ band Ở hướng phát, thiết bị lớp LINK chọn port của thiết bị lớp PHY bằng cách gởi địa chỉ trên TDAT được nhận biết bởi tín hiệu TSX tích cực và TENB không tích cực Tất cả dữ liệu truyền tiếp theo trên TDAT với tín hiệu TSX không tích cực và TENB tích cực sẽ là dữ liệu gói của port được chỉ định trước đó Ở hướng nhận, thiết bị lớp PHY sẽ chỉ định địa chỉ port sẽ truyền bằng cách gởi địa chỉ trên bus RDAT kèm theo tín hiệu RSX tích cực và RVAL không tích cực Tất cả dữ liệu truyền tiếp theo trên RDAT với tín hiệu RSX không tích cực và RVAL tích cực sẽ là dữ liệu gói của port được chỉ định trước đó
in-Cả hai chế dộ truyền dữ liệu ở cấp độ byte và gói được chỉ định trong chuẩn này dùng để hổ trợ cho các thiết bị lớp PHY nhiều port mật độ thấp và các thiết bị lớp PHY mật độ cao hơn trong tương lai Khi số port trong thiết bị lớp PHY giới hạn, chế độ truyền dữ liệu mức byte sử dụng các tín hiệu DTPA sẽ cho phép cách thức bắt tay truyền dữ liệu đơn giản hơn và khi đó có thể bỏ các chân tín hiệu định địa chỉ Trong trường hợp này, việc truy xuất trực tiếp trạng thái của các FIFO thiết bị lớp PHY sẽ trở nên không hợp lí khi số lượng port tăng lên Chế độ truyền dữ liệu ở mức gói (packet-level) đưa ra giải pháp với số lượng pin tín hiệu ít hơn sử dụng TADR[] khi số lượng port lớn Việc định địa chỉ in-band đảm bảo giao thức truyền vẫn không thay đổi
Trang 27giữa hai phía Tuy nhiên, lựa chọn cuối cùng phụ thuộc vào những nhà thiết kế hệ thống và những nhà chế tạo thiết bị lớp vật lí để chọn giải pháp nào thích hợp nhất cho các ứng dụng mong muốn của họ
3.5 Tốc độ đường truyền cho các ứng dụng
Kết hợp nhiều giá trị tần số clock và độ rộng bus dữ liệu cho phép giao thức truyền SPI 3 cung cấp rất nhiều giá trị tốc độ truyền khác nhau Bảng dưới đây đưa ra một số
ví dụ về tốc độ đường truyền được hổ trợ bởi các giao diện SPI 3 và số lượng kênh tối
đa được các giao diện truyền hổ trợ
Standard
Reference
Bit Rate (Mbit/s)
Số port của thiết bị lớp PHY (800Mbit/s bus)
Số port của thiết bị lớp PHY (3.2Gbit/s bus) SONET STS-1 51.84 12 48
Trang 284
CHỨC NĂNG CỦA CÁC TÍN HIỆU TRÊN
GIAO DIỆN SPI 3
4.1 Hướng Phát (Transmit side)
4.1.1 Các tín hiệu hướng phát
Tên tín hiệu Hướng
truyền
Chức năng
truyền đến lớp LINK và PHY hướng phát
Clock ghi FIFO hướng phát (Transmit FIFO Write Clock)
TFCLK được sử dụng để đồng bộ việc truyền dữ liệu hướng phát giữa thiết bị lớp LINK và thiết bị lớp PHY TFCLK có thể hoạt động ở tần số lên đến 104 MHz
đến lớp PHY Tín hiệu chỉ định lỗi ở hướng phát TX (Transmit Error Indicator)
TERR được sử dụng để chỉ định rằng có một lỗi trong gói hiện đang truyền TERR chỉ nên được tích cực khi TEOP tích cực Tính hiệu này được xem là hợp lệ chỉ khi TENB đồng thời tích cực
đến lớp PHY Tín hiệu cho phép ghi hướng phát (Transmit Write Enable)
TENB được sử dụng để điều khiển luồng dữ liệu đến FIFO phát Khi TENB ở mức cao, các tín hiệuTDAT, TMOD, TSOP, TEOP và TERR là không hợp lệ và bị
Trang 29bỏ qua bởi thiết bị lớp PHY Tín hiệu TSX hợp lệ và được xử lí bởi thiết bị lớp PHY khi TENB ở mức cao Khi TENB ở mức thấp, tín hiệu TDAT, TMOD, TSOP, TEOP và TERR là hợp lệ và được thiết bị lớp PHY xử lí Trong khi do tín hiệu TSX không được thiết bị lớp PHY xử lí khi TENB ở mức thấp
TDAT[31:0] LINK to PHY Transmit Packet Data Bus (TDAT[]) bus
Bus này truyền các octets của gói dữ liệu được ghi vào FIFO hướng phát và truyền địa chỉ in-band port để chỉ định FIFO hướng phát sẽ truyền dữ liệu đến TDAT bus chỉ được coi là hợp lệ khi TENB đồng thời tích cực
Khi sử dụng giao diện 32-bit, Dữ liệu phải được
truyền theo thứ tự big endian order trên
TDAT[31:0] bus Bit 31 được truyền đầu tiên và bit 0 được truyền cuối cùng
Khi sử dụng giao diện 16-bit, Lớp PHY chỉ hổ trợ TDAT[15:0]
Khi sử dụng giao diện 8-bit, Lớp PHY chỉ hổ trợ TDAT[7:0]
TPRTY Từ lớp LINK
đến lớp PHY Transmit bus parity (TPRTY) Tín hiệu TPRTY chỉ định parity được tính toán trên
TDAT bus Khi giao diện 16-bit được sử dụng, lớp PHY chỉ tính TPRTY trên TDAT[15:0] và TDAT[7:0] cho giao diện 8-bit TPRTY chỉ được xem là hợp lệ khi TENB hay TSX tích cực
Khi TPRTY được sử dụng, Thiết bị lớp PHY phải hổ trợ parity lẻ Thiết bị lớp PHY phải giở tín hiệu báo lỗi parity đến những lớp cao hơn nhưng sẽ không gián đoạn dữ liệu được truyền
TMOD[1:0] Từ lớp LINK
đến lớp PHY Transmit Word Modulo (TMOD[1:0]) TMOD[1:0] chỉ định số byte dữ liệu hợp lệ trong bus
dữ liệu TDAT[31:0] TMOD bus luôn luôn bằng 0 và
Trang 30chỉ khác 0 ở double-word cuối cùng của một gói dữ liệu được truyền trên bus TDAT[31:0] Khi TEOP tích cực, số byte dữ liệu hợp lệ trên bus TDAT[31:0] được xác định bởi giá trị của TMOD[1:0] như sau TMOD[1:0] = “00” TDAT[31:0] hợp lệ TMOD[1:0] = “01” TDAT[31:8] hợp lệ TMOD[1:0] = “10” TDAT[31:16] hợp lệ TMOD[1:0] = “11” TDAT[31:24] hợp lệ Khi sử dụng giao diện 16-bit, chỉ sử dụng TMOD[0] TMOD[0] = “0” TDAT[15:0] hợp lệ TMOD[0] = “1” TDAT[15:8] hợp lệ TMOD[1:0] không được sử dụng cho giao diện với 8-bit bus dữ liệu
TMOD chỉ được xem là hợp lệ khi TENB cũng được tích cực
TSX Từ lớp LINK
đến lớp PHY Transmit Start of Transfer (TSX) TSX chỉ định địa chỉ in-band port được truyền trên
TDAT bus Khi TSX ở mức cao và TENB ở mức cao, giá trị của bus TDAT[7:0] là địa chỉ của FIFO hướng truyền Dữ liệu tiếp theo trên bus TDAT sẽ được ghi vào FIFO có địa chỉ được xác định bởi địa chỉ in-band này
Với thiết bị lớp PHY đơn port, TSX là tùy chọn vì thiết bị lớp PHY sẽ không sử dụng địa chỉ in-band khi TENB ở mức cao
TSX được xem là hợp lệ chỉ khi TENB không được tích cực (TENB = 1)
đến lớp PHY Transmit Start of Packet (TSOP) TSOP được dùng để xác định vị trí bắt đầu của gói
dữ liệu truyền trên bus TDAT Khi TSOP ở mức cao, Những byte dữ liệu truyền trên TDAT là những byte đầu tiên của một gói dữ liệu
Trang 31TSOP tích cực tại ví trí bắt đầu của mỗi gói dữ liệu và chỉ được xem là hợp lệ khi TENB tích cực
đến lớp PHY Transmit End of Packet (TEOP) TEOP được dùng để chỉ định vị trí kết thúc của một
gói dữ liệu truyền trên bus TDAT TEOP tích cực ở mức cao
Khi sử dụng giao diện 32-bit hay 16-bit, TMOD[1:0] xác định số byte dữ liệu hợp lệ trên bus TDAT khi TEOP tích cực Khi sử dụng giao diện 8-bit, Byte cuối cùng của gói dữ liệu truyền trên TDAT[7:0] khi TEOP tích cực
TEOP tích cực tại vị trí của mỗi gói dữ liệu và chỉ được xem là hợp lệ khi TENB tích cực
TADR[6:0] Từ lớp LINK
đến lớp PHY ( Packet-Level Mode)
Transmit PHY Address (TADR[]) bus
TADR bus được sử dụng cùng với tín hiệu PTPA kiểm tra trạng thái sẵn sàng nhận dữ liệu của các FIFO hướng phát
Khi TADR được lớp PHY lấy mẫu tại cạnh lên của TFCLK, tín hiệu PTPA chỉ định trạng thái nhận dữ liệu của port được chỉ định bởi bus địa chỉ TADR được cập nhật trên cạnh lên kế tiếp của TFCLK
DTPA[3:0] Từ lớp PHY
đến lớp LINK (Byte-Level Mode)
Direct Transmit Packet Available (DTPA[])
DTPA bus xác định trạng thái trực tiếp với các port tương ứng trong thiết bị lớp PHY
DTPA tích cực cao khi trong FIFO hướng phát của nó đạt được số byte tối thiểu được định nghĩa trước ( thường có thể lập trình bởi người dùng) Khi ở mức cao, tín hiệu DTPA chỉ định rằng FIFO hướng phát tương ứng của nó không đầy Khi DTPA chuyển sang mức thất, nó chỉ định rằng FIFO hướng phát của nó gần đầy hoặc đã đầy (thông thường có thể lập trình bởi người sử dụng)
DTPA được sử dụng chế độ truyền mức byte
Trang 32(byte-level) DTPA được cập nhật trên cạnh lên của TFCLK
đến lớp LINK (Byte-Level Mode)
Selected-PHY Transmit Packet Available (STPA) STPA chuyển sang mức cao khi trong FIFO hướng phát được xác định bởi địa chỉ in-band trên TDAT đã nhận được số byte dữ liệu tối thiểu được định nghĩa trước (thông thường người sử dụng có thể lập trình) Khi ở mức cao, STPA chỉ định FIFO hướng phát không đầy Khi STPA chuyển sang mức thấp, nó chỉ định rằng FIFO hướng phát đã đầy hoặc gần đầy (thường người sử dụng có thể lập trình được)
STPA luôn luôn xác định trạng thái của port được chọn của thiết bị lớp PHY để tránh tình trạng tràn FIFO trong khi trong khi thực hiện việc kiểm tra trạng thái port ( qua trình polling) Trạng thái port mà tín hiệu PTPA chỉ định được cập nhật tại cạnh lên kế tiếp của TFCLK sau khi địa chỉ port lớp PHY trên TDAT được lấy mẫu bởi thiết bị lớp PHY
STPA được sử dụng khi giao diện hoạt động ở chế độ truyền cấp độ byte (byte-level) STPA được cập nhật trên cạnh lên của TFCLK
đến lớp LINK (Packet-Level Mode)
Polled-PHY Transmit Packet Available (PTPA)
PTPA tích cực cao khi trong FIFO Tx được kiểm tra trạng thái đã nhận được số byte dữ liệu tối thiểu được định nghĩa trước (thông thường người sử dụng có thể lập trình) Khi tích cực cao, PTPA chỉ định rằng FIFO hướng Tx không đầy
Khi PTPA chuyển sang mức thất, nó chỉ định cả hai trường hợp là FIFO hướng Tx đầy hoặc gần đầy (thông thường người sử dụng có thể lập trình được) PTPA cho phép kiểm tra trạng thái của các port có địa chỉ được xác định bởi TADR của thiết bị lớp PHY Trạng thái của port mà PTPA chỉ định được cập nhật ở cạnh lên kết tiếp của TFCLK sau khi địa chỉ
Trang 33port của thiết bị lớp PHY được lấy mẫu
PTPA được sử dụng trong chế độ truyền cấp độ gói (packet-level) PTPA được cập nhật trên cạnh lên của TFCLK
4.1.2 Phương thức chỉ định trạng thái trực tiếp
Mode hoạt động này chỉ hổ trợ việc truyền dữ liệu ở mức byte Trong chế độ hoạt động này, thiết bị lớp PHY sử dụng tín hiệu DTPA[] để thông báo trạng thái của các FIFO hướng Tx đến các thiết bị lớp LINK Các tín hiệu khác sử dụng trong mode hoạt động này tương tự như các mode khác được trình bày ở dưới đây
4.1.2.1 Hoạt động truyền dữ liệu đơn port
Trong trường hợp này, địa chỉ in_band không được sử dụng bởi vì trạng thái của port vật lí được xác định trực tiếp bởi tín hiệu DTPA Thiết bị lớp LINK luôn luôn giám sát trạng thái của tín hiệu DTPA để biết được trạng thái của FIFO hướng phát trong thiết bị lớp vật lí Giản đồ thời gian của trường hợp này như sau:
Hình 4.1 Giao tiếp đơn port không định địa chỉ in-band
Trang 344.1.2.2 Nhiều port
Mode hoạt động này chỉ sử dụng cho trường hợp số lượng port sử dụng ít Trong mode hoạt động này thiết bị lớp vậy lí sử dụng tín hiệu DTPA[] để thông báo đến thiết bị lớp LINK trạng thái FIFO của mỗi port tương ứng Mỗi bit trong bus tín hiệu DTPA[] tương ứng với trạng thái mỗi port trong thiết bị lớp PHY nhiều port Giản đồ dưới đây minh họa truyền dữ liệu của thiết bị lớp PHY có hai port
Hình 4.12 Giản đồ thời gian hướng Tx
4.1.3 Chế độ hoạt động hỏi vòng (polling) kiểm tra trạng thái port
Có hai cấp độ truyền dữ liệu đươc sử dụng trong mode hoạt động này byte-level và packet level Trong mode hoạt động byte-level, Thiết bị lớp PHY sẽ sử dụng tín
hiệu STPA (Selected-PHY Transmit Packet Available) để thông báo thông tin về
trạng thái của port được chọn đến thiết bị lớp LINK Khi đó, thiết bị lớp LINK sẽ
giám sát trạng thái của tín hiệu này để biết thông tin trạng thái FIFO hướng Tx của
port được chọn
Trong mode hoạt động packet-level, thiết bị lớp PHY sẽ sử dụng tín hiệu PTPA
(Polled-PHY Transmit Packet Available) để thông báo trạng thái của port được chọn đến thiết bị lớp LINK Khi đó thiết bị lớp LINK sẽ giám sát trạng thái của tín hiệu
này để biết được thông tin trạng thái của FIFO hướng Tx của port được chọn
Trang 354.1.3.1 Chế độ hoạt động truyền Byte-level
Trong chế độ hoạt động này, Tín hiệu STPA luôn luôn phản ánh trạng thái của
port được chọn để tránh trạng thái tràn FIFO Địa chỉ port mà tín hiệu STPA chỉ định
trước tiên được truyền trên bus TDAT bằng cách tích cực tín hiệu TSX và không tích
cực tín hiệu TENB Hình dưới đây minh họa hoạt động truyền dữ liệu trong mode
hoạt động này
4.1.3.2 Chế độ hoạt động Packet-level
Chế độ hoạt động này sử dụng bus tín hiệu TADR[] và tín hiệu PTPA để kiểm tra
trạng thái của từng port riêng lẻ tại bất kì thời điểm nào, ngay cả khi đang truyền dữ
liệu Hình dưới đây minh họa cách thức bắt tay truyền dữ liệu so sánh với chế độ hoạt
động chỉ định trực tiếp trạng thái của FIFO ( trong đó tín hiệu DTPA [] được sử dụng
thay cho tín hiệu PTPA)
Hình 4.13 Giản đồ thời gian quá trình kiểm tra trạng thái port
Khi sử dụng tín hiệu PTPA và TADR[] để kiểm tra trạng thái của các port, Thiết
bị lớp LINK phải gởi địa chỉ của port mà nó muốn gởi dữ liệu đến để biết trạng thái
của port đó, trong trường hợp port đó sẵn sàng nhận dữ liệu từ thiết bị lớp LINK, dữ
liệu sẽ được truyền trong lần gởi kế tiếp hay lần sau đó theo cơ chế round-robin
Trang 36
4.2 Các tín hiệu trên giao diện hướng thu
4.2.1 Ý nghĩa chức năng của các tín hiệu
Tên tín hiệu Eân2 Chức Năng
RFCLK Nguồn Clock
truyền đến lớp LINK và PHY hướng thu (Rx)
Receive FIFO Write Clock (RFCLK)
RFCLK được sử dụng để đồng bộ việc truyền dữ liệu hướng thu giữa thiết bị lớp LINK và thiết bị lớp PHY RFCLK có thể hoạt động ở tần số lên đến 104 MHz
RVAL Từ lớp PHY
đến LINK Receive Data Valid (RVAL) RVAL xác định tính hợp lệ của của các tín hiệu dữ
liệu hướng thu RVAL ở mức thấp giữa những lần truyền dữ liệu và khi RSX được tích cực.Nó cũng ở mức thấp khi thiết bị lớp PHY ngừng việc truyền dữ liệu vì một FIFO hướng thu của nó không có dữ liệu Khi việc truyền dữ liệu được dừng ở việc giữ tín hiệu RENB ở mức cao, RVAL vẫn giữ trạng thái của nó không thay đổi, mặc dù không có dữ liệu mới được truyền trên RDAT[31:0] cho đến khi việc truyền được khôi phục lại
Khi tín hiệu RVAL ở mức cao, các tín hiệu RDAT[31:0], RMOD[1:0], RSOP, REOP and RERR hợp lệ Khi RVAL ở mức thấp, các tín hiệu RDAT[31:0], RMOD[1:0], RSOP, REOP và RERR không hợp lệ và phải được bỏ qua
Tín hiệu RSX hợp lệ khi RVAL ở mức thấp
RENB Từ lớp LINK
truyền đến lớp PHY
Receive Read Enable (RENB)
Tín hiệu RENB được sử dụng để điều khiển luồng dữ liệu từ các FIFO nhận của thiết bị lớp PHY Trong quá trình truyền dữ liệu, RVAL phải được giám sát vì tín hiệu này xác định tính hợp lệ của các
Trang 37tín hiệu RDAT[31:0], RPRTY, RMOD[1:0], RSOP, REOP, RERR và RSX Hệ thống có thể không tích cực tín hiệu RENB tại bất kì thời điểm nào nếu thiết
bị lớp LINK không thể nhận dữ liệu từ thiết bị lớp PHY
Khi RENB được lấy mẫu ở mức thấp bởi thiết bị lớp PHY, việc đọc được thực hiện từ FIFO thu và các tín hiệu RDAT[31:0], RPRTY, RMOD[1:0], RSOP, REOP, RERR, RSX và RVAL được cập nhật trên cạnh lên kế tiếp của RFCLK
Khi RENB được lấy mẫu ở mức cao bởi thiết bị lớp PHY, việc đọc từ FIFO thu không được thực hiện và các tín hiệu RDAT[31:0], RPRTY, MOD[1:0], RSOP, REOP, RERR, RSX và RVAL sẽ giữ nguyên không
thay đổi trên cạnh lên tiếp theo của RFCLK
RDAT[31:0] Từ lớp PHY
đến LINK Receive Packet Data Bus (RDAT[31:0]) Bus RDAT[31:0] chở các octet của gói dữ liệu được
đọc từ FIFO thu của thiết bị lớp PHY và nó cũng truyền địa chỉ port in-band của FIFO thu được chọn RDAT[31:0] chỉ được xem là hợp lệ khi RVAL tích cực
Khi sử dụng giao diện truyền với bus dữ liệu 32-bit,
dữ liệu phải đươc nhận theo thứ tự big endian trên
bus RDAT[31:0] Trong cấu trúc dữ liệu được định nghĩa, bit 31 được nhận đầu tiên và bit 0 được nhận cuối cùng
Khi sử dụng giao diện truyền với bus dữ liệu 16-bit, Thiết bị lớp PHY chỉ hỗ trợ RDAT[15:0]
Khi sử dụng giao diện truyền với bus dữ liệu 8-bit, Thiết bị lớp PHY chỉ hỗ trợ RDAT[7:0]
RPRTY Từ lớp PHY
đến LINK Receive Parity (RPRTY) Tín hiệu parity hướng nhận chỉ định parity được tính
trên bus RDAT Khi sử dụng giao diện 16-bit, parity được tính trên RDAT[15:0] Khi sử dụng giao diện
Trang 3816-bit, thiết bị lớp PHY chỉ hổ trợ RPRTY trên RDAT[7:0]
Khi hổ trợ RPRTY, thiết bị lớp PHY phải hổ trợ parity lẻ RPRTY chỉ được xem là hợp lệ khi tín hiệu
RVAL hay RSX tích cực
RMOD[1:0] Từ lớp PHY
đến LINK Receive Word Modulo (RMOD) RMOD[1:0] xác định số lượng byte hợp lệ trong bus
dữ liệu nhận RDAT[31:0] Bus RMOD luôn luôn có giá trị bằng 0, ngoại trừ khi truyền những byte cuối cùng của gói dữ liệu trên RDAT Khi REOP tích cực, số lượng byte dữ liệu hợp lệ trên bus RDAT được xác định bởi giá trị của RMOD như sau :
Với giao diện truyền dữ liệu 32-bit : RMOD[1:0] = “00” RDAT[31:0] hợp lệ RMOD[1:0] = “01” RDAT[31:8] hợp lệ RMOD[1:0] = “10” RDAT[31:16] hợp lệ RMOD[1:0] = “11” RDAT[31:24] hợp lệ Với giao diện truyền dữ liệu 16-bit (chỉ sử dụng RMOD[0]):
RMOD[0] = “0” RDAT[15:0] hợp lệ RMOD[0] = “1” RDAT[15:8] hợp lệ Khi sử dụng giao diện truyền 8-bit, RMOD không được sử dụng RMOD[1:0] chỉ được xem là hợp lệ khi RVAL tích cực
RSOP Từ lớp PHY
đến LINK Receive Start of Packet (RSOP) RSOP dùng để chỉ ra giới hạn của gói dữ liệu trên
bus dữ liệu RDAT Khi RSOP ở mức cao, những byte đầu tiên của gói dữ liệu được truyền trên bus dữ liệu RDAT
RSOP tích cực khi bắt đầu truyền những byte đầu tiên của mỗi gói dữ liệu và chỉ hợp lệ khi RVAL tích
cực
Trang 39REOP Từ lớp PHY
đến LINK Receive End Of Packet (REOP) REOP dùng để chỉ ra phạm vi của gói dữ liệu truyền
trên bus dữ liệu RDAT Khi REOP tích cực cao, những byte cuối cùng của gói dữ liệu được truyền trên bus dữ liệu RDAT
Khi sử dụng giao diện truyền dữ liệu 32-bit, RMOD[1:0] xác định số byte hợp lệ trong 4 byte dữ liệu truyền cuối cùng trên bus TDAT[31:0] khi tín hiệu REOP tích cực
Khi sử dụng giao diện truyền dữ liệu 16-bit, RMOD[0] xác định số byte hợp lệ trong 2 byte dữ liệu truyền cuối cùng trên bus TDAT[15:0] khi tín hiệu REOP tích cực
Khi sử dụng giao diện truyền 8-bit, byte cuối cùng của gói dữ liệu được truyền trên RDAT[7:0] khi REOP tích cực
REOP luôn phải tích cực cao tại vị trí cuối cùng của gói dữ liệu được truyền và chỉ hợp lệ khi RVAL tích cực
RERR Từ lớp PHY
đến LINK Receive error indicator (RERR) RERR được dùng để chỉ định rằng gói dữ liệu đang
truyền hiện tại bị lỗi RERR chỉ được tích cực khi REOP tích cực
Những điều kiện có thể dẫn đến tích cực RERR có thể là (tuy nhiên không bị giới hạn), tràn FIFO, phát hiện chuỗi dữ liệu truyền không đúng thứ tự và lỗi FCS
RERR hợp lệ chỉ khi RVAL tích cực
RSX Từ lớp PHY
đến LINK Receive Start of Transfer (RSX) RSX chỉ định khi địa chỉ port in-band được truyền
trên bus dữ liệu RDAT Khi RSX ở mức cao, giá trị của RDAT[7:0] là địa chỉ của FIFO nhận được chọn bởi thiết bị lớp PHY Việc truyền dữ liệu kế tiếp sẽ
Trang 40được đọc từ FIFO được xác định bởi địa chỉ in-band này
Đối với các thiết bị lớp PHY đơn port, tín hiệu RSX có thể không được sử dụng Khi đó thiết bị lớp PHY không cần phát các địa chỉ in-band
Đối với các thiết bị lớp PHY đa port, tín hiệu RSX phải được tích cực tại vị trí bắt đầu của mỗi một lần truyền
Khi RSX ở mức cao, RVAL phải ở mức thấp
4.2.2 Giao diện truyền dữ liệu đơn port
Ứng dụng này không sử dụng tín hiệu RSX bởi vì việc định địa chỉ in-band không cần thiết Hình dưới đây mô tả quá trình hoạt động của mode truyền dữ liệu này:
Hình 4-4: Giao diện truyền dữ liệu đơn port