SPI cho dân analog – Phần 1/4: Giới thiệu

Lý do đầu tiên, có lẽ vậy, mà bạn, một kỹ sư thiết kế mạch analog, sẽ đọc bài viết này là tay thiết kế mạch digital cùng dự án làm việc nói rằng: “SPI hả? Đơn giản quá. Em không làm đâu!” và cương quyết từ chối cho dù bạn, sếp của bạn—tức là người đứng đầu nhóm analog, và sếp của hắn—tức là người đứng đầu nhóm digital, có ra sức thuyết phục thế nào đi chăng nữa. Vụ tranh cãi chỉ kết thúc khi sếp của bạn kết luận: “Chắc không còn cách nào khác hơn là nhóm analog phải tự thiết kế giao tiếp SPI cho con chíp của mình,” và quay sang phía bạn trước khi bắt đầu câu hỏi cuối cùng: “Đúng không?”

SPI (Serial Peripheral Interface) hay Giao tiếp Ngoại vi Nối tiếp là một giao tiếp thường gặp trên các con chíp hệ thống như chíp thu phát RF (RF transceiver), chíp chuyển đổi analog-digital (ADC/DAC), chíp tổng hợp tần số (synthesizer), vân vân. Cũng như các giao tiếp mà ta thường gặp trong lĩnh vực điện tử máy tính, SPI là một giao tiếp dạng digital. Điều này có lẽ sẽ ngay lập tức làm nhụt chí các tay thiết kế mạch analog—những người thường làm việc với transistor, điện trở, tụ điện, và đôi khi là cuộn cảm hơn là làm việc với các dòng mã HDL (Hardware Description Language) dùng trong thiết kế mạch digital—khi được yêu cầu bổ sung giao tiếp SPI vào con chíp của mình.

Thực tế thì giao tiếp SPI lại rất đơn giản. Đơn giản đến mức khi bạn vỡ lẽ ra việc thiết kế giao tiếp SPI dễ dàng như thế nào thì bạn sẽ hoàn toàn thông cảm với tay thiết kế digital kia vì rằng hắn sẽ chẳng tích luỹ được thêm chút kinh nghiệm gì qua việc thiết kế chỉ một mạch SPI cho bạn.

Ta sẽ tìm hiểu về SPI thông qua một ví dụ. Trong tình huống này bạn có một con chíp tổng hợp tần số do nhiều khối chức năng ghép thành và bạn muốn có khả năng tinh chỉnh hoạt động của các khối chức năng trong con chíp để tối ưu hoá hoạt động sau khi con chíp đã được sản xuất cũng như điều khiển hoạt động của cả con chíp khi nó được tích hợp trong một hệ thống. Một cách trực tiếp nhất là bạn nối tất cả các dòng/áp phân cực, các tín hiệu điều khiển, vân vân, của các khối chức năng ra các I/O riêng, như trong Hình 1. Bạn có thể nhận ra ngay là phương pháp này sẽ dẫn đến việc con chíp có rất nhiều I/O. Điều này làm lãng phí diện tích trên con chíp và làm cho việc đóng gói (packaging) con chíp trở nên rất khó khăn.

spi_1

Hình 1: Sơ đồ khối của một con chíp tổng hợp tần số với các dòng điện/điện áp để phân cực và điều khiển các khối chức năng bên trong con chíp (các đường màu hồng) được đưa ra ngoài thông qua các I/O. Con chíp sẽ cần rất nhiều I/O cho các tín hiệu này—điều sẽ làm cho con chíp lớn hơn và đôi khi không dễ để đóng gói.

Một giải pháp khác, như được trình bày trong Hình 2, là ta sử dụng các bộ chuyển đổi digital-analog (DAC) để cung cấp các dòng điện và điện áp phân cực cho các mạch analog. Khi đó ta cần phải cung cấp các bit đầu vào cho các bộ DAC. Các bít này được lưu trữ trong một hay nhiều thanh ghi dữ liệu (register) và ta sẽ cần có một giao tiếp để đưa dữ liệu vào các thanh ghi này. SPI có thể giúp ta thực hiện việc truyền dữ liệu từ bên ngoài vào các thanh ghi (và ngược lại, nếu muốn). Bằng cách thay đổi giá trị của các bit được lưu trong các thanh ghi, ta có thể thay đổi các tín hiệu phân cực và điều khiển cho các khối chức năng.

spi_2

Hình 2: Sơ đồ khối của một con chip tổng hợp tần số sử dụng giao tiếp SPI để thay đổi giá trị của các bít được lưu trong một hay nhiều thanh ghi bên trong con chíp. Các bít dữ liệu này được sử dụng để điều chỉnh phân cực và cung cấp các tín hiệu điều khiển cho các mạch analog. Do giao tiếp SPI chỉ sử dụng bốn I/O, số lượng I/O của con chíp sẽ giảm đi đáng kể.

Ngoài việc giúp làm giảm số lượng I/O, giao tiếp SPI còn có một ưu điểm nữa là nó cho phép con chíp có thể được điều khiển bằng các tín hiệu digital. Ví dụ như trong hệ thống thông tin không dây thì một con chíp xử lý tín hiệu số (chíp baseband) có thể điều khiển hoạt động của chíp tổng hợp tần số thông qua giao tiếp SPI như được trình bày trong Hình 3. Các bộ xử lý trên con chíp baseband có khả năng tính toán và điều khiển chíp tổng hợp tần số theo yêu cầu hoạt động của toàn bộ hệ thống.

spi_3

Hình 3: Hệ thống thu phát không dây có thể sử dụng một chíp baseband để xử lý tín hiệu. Chíp baseband điều khiển chíp tổng hợp tần số để tạo tín hiệu sóng mang cho toàn bộ hệ thống thu phát không dây. Hai con chíp sử dụng giao tiếp SPI để truyền các tín hiệu điều khiển. Chíp baseband chứa mạch SPI Master còn chíp tổng hợp tần số chứa mạch SPI Slave.

Tuy nhiên, giao tiếp SPI có bất lợi về mặt tốc độ. Việc truyền các bít dữ liệu thông qua giao tiếp SPI tốn nhiều xung clock do đó các thông số cần được thay đổi nhanh có thể sẽ không phù hợp để được cập nhật thông qua SPI. Chẳng hạn như trong Hình 2, tín hiệu điều khiển các bộ chia tần số có thể phải được cập nhật thật nhanh để chuyển kênh tần số trong thời gian cho phép. Nếu chíp baseband muốn thay đổi các bộ chia tần số với tốc độ cao hơn tốc độ cập nhật các thanh ghi (thông qua giao tiếp SPI) thì ta không thể sử dụng SPI cho mục đích điều khiển các bộ chia tần số được. Các tín hiệu điều khiển tốc độ cao khi đó phải được đưa ra các I/O (như trong Hình 1) để chíp baseband có thể điều khiển trực tiếp.

(xem tiếp Phần 2: Nguyên lý hoạt động)



Advertisements

4 comments

  1. Ẩn danh

    Good one, đợi các phần tiếp theo.

    Hoàng

  2. Pingback: SPI cho dân analog – Phần 2/4: Nguyên lý hoạt động | Chuyên Mục Công Nghệ

  3. Pingback: SPI cho dân analog – Phần 3/4: Thiết kế mạch SPI Slave | Chuyên Mục Công Nghệ

  4. Pingback: SPI cho dân analog – Phần 4/4: Kết hợp SPI với thanh ghi – Phần cuối: SPI Master | Chuyên Mục Công Nghệ

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: