Làm thế nào để hack máy phát RF / FM GPIO hoạt động?


8

Cách đây một thời gian, một vài người đã phát hiện ra rằng họ có thể truyền tín hiệu FM bằng cổng GPIO của Raspberry Pi và một người khác nhận ra rằng anh ta có thể sử dụng RasPi để điều khiển thiết bị tự động hóa nhà của mình:

http://www.skagmo.com/page.php?p=projects/22_pihat

Đây là tập tin điều khiển radio cho việc này:

https://github.com/s7mx1/pihat/blob/master/radio.c

Bây giờ, tôi muốn chuyển ngôn ngữ này sang ngôn ngữ dễ hơn C để tôi thử nghiệm, như Go hoặc Python. Tuy nhiên, tôi không thực sự rõ ràng về cách thức này được thực hiện.

Skagmo sử dụng sóng hài để tạo ra tần số 433 MHz. Giả sử bạn chỉ muốn tần số 100 MHz, vì đơn giản, làm thế nào để bạn tạo ra tần số đó? Theo những gì tôi hiểu, nó có liên quan đến đồng hồ GPIO (hoặc có thể là SPI? Tôi không chắc chắn).

Từ những gì tôi có thể thấy trong tệp, anh ta đặt ba bit trên một số thanh ghi lựa chọn chức năng GPIO, sau đó khởi tạo đồng hồ với một cấu trúc, và sau đó đặt một bit bất cứ khi nào anh ta muốn truyền cao hoặc thấp.

Đây có phải trong sóng mang? Trong trường hợp các sóng mang?

Tôi cũng tìm thấy tập lệnh Python này tuyên bố sẽ làm điều tương tự , nhưng tôi không chắc liệu nó có sử dụng trình phát gốc hay nếu người đó kết nối một tập lệnh bên ngoài với RasPi.

Về cơ bản, tôi thực sự sẽ đánh giá cao một lời giải thích hoặc một tài liệu tham khảo ngắn về cách thức hoạt động của nó, và nếu Python / Go đủ nhanh để truyền tín hiệu có thể bắt chước từ xa cửa nhà để xe của tôi (có vẻ như được điều chế ASK) hoặc nếu tôi có để làm điều đó trong C.

Câu trả lời:


2

trong khi nhận ra đây là một vụ hack hài hước và tuyệt vời, tôi khuyên bạn không nên sử dụng nó cho bất cứ điều gì ngoại trừ bằng chứng về bản demo khái niệm, bởi vì phát sóng trên các tần số không được cấp phép có thể vi phạm luật và / hoặc dẫn đến các vấn đề pháp lý và / hoặc hình phạt nặng.

xin vui lòng, chỉ sử dụng thiết bị được cấp phép để phát trong phạm vi tần số cho phép và giới hạn công suất đầu ra. bạn sẽ không bao giờ biết nếu có một người được trang bị máy tạo nhịp tim trong khu phố của bạn.

Raspberry Pi có bộ tạo xung nhịp, có thể phát sóng vuông đến các chân GPIO. Nếu bạn lập trình bộ tạo xung nhịp theo tần số mong muốn, bạn sẽ nhận được tín hiệu và khi bạn thay đổi tần số, tín hiệu sẽ trở thành đài phát thanh được điều chế tần số (FM). Điểm xấu của phương pháp này là: 1) sóng vuông rất nhiễu - nhiều sóng hài và các tần số khác được truyền đi, 2) RasPi có thể phát ra rất nhiều năng lượng RF, chặn một số truyền khác trong phổ tần số rất rộng.


3

Có thể có các dải tần số vô tuyến ở quốc gia của bạn, nơi có thể cho phép phát xạ vô tuyến không được cấp phép rất thấp (quy tắc Phần 15 của Hoa Kỳ tại Hoa Kỳ). Tuy nhiên, đầu ra GPIO chưa được lọc sẽ không phát trong một băng tần RF.

Thủ thuật truyền phát GPIO sử dụng đầu ra kỹ thuật số định kỳ để tạo tín hiệu vô tuyến. Điều này là do một trong những định lý của Fouri chứng minh rằng tín hiệu không phải hình sin nhưng định kỳ có thể bị phân hủy thành nhiều thành phần hình sin (sóng hài). Kết nối một thành phần hình sin với ăng ten có độ dài nửa sóng và nó sẽ phát ra một số năng lượng RF. Nhưng, để cắt năng lượng trong các dải tần số khác với tần số dự định, bộ lọc thông thấp hoặc bộ lọc thông dải cần được sử dụng giữa chân GPIO và ăng ten để loại bỏ năng lượng RF ở tất cả các tần số ngoài ý muốn (tất cả các tần số đó các tần số khác có trong phân tách Fourier của dạng sóng đầu ra kỹ thuật số GPIO định kỳ của Pi của bạn).

Bạn không muốn Pi của mình can thiệp vào bất kỳ băng tần dịch vụ khẩn cấp tần số cao hơn nào, điều này có thể khiến một người gặp rắc rối về pháp lý.

Đã thêm: FM có nghĩa là điều chế tần số, ví dụ: thay đổi (điều chế) trong tần số của sóng mang RF biểu thị thông tin về đầu vào điều chế (biên độ âm thanh trong một trường hợp phổ biến). Pi có các thanh ghi điều khiển có thể thay đổi thời gian định kỳ của chân đầu ra GPIO. Thay đổi thời gian định kỳ cũng là thay đổi về tần số. Thay đổi tần số kỹ thuật số này vào đúng thời điểm (khi tín hiệu âm thanh thay đổi biên độ, v.v.) và biến đổi Fourier của dạng sóng kỹ thuật số này cũng sẽ thay đổi phổ tần số của nó (cao hơn hoặc thấp hơn, ví dụ như được điều chế tần số hoặc tín hiệu FM). DMA đôi khi được sử dụng để thay đổi các thanh ghi thời gian của Pi, vì DMA có thể xảy ra thường xuyên đủ để khớp với các thay đổi về biên độ tệp âm thanh ở tốc độ mẫu âm thanh hoặc bội số của chúng.

Một số sách giáo khoa về thiết kế radio sẽ chứa nhiều chi tiết hơn về cách thay đổi phổ để đáp ứng các tiêu chuẩn phát sóng khác nhau (một số chương nhiều hơn phù hợp ở đây). Kiến thức về DSP âm thanh và cách các thanh ghi điều khiển của Pi và DMA hoạt động cũng có thể cần thiết (một lần nữa, một vài chương nhiều hơn phù hợp ở đây).


2
Mặc dù đây là câu trả lời đúng nhất, nhưng lời giải thích về phân tách Fourier, không giải thích cách tín hiệu GPIO kỹ thuật số được chuyển đổi thành FM, mà mọi người tin là tương tự. Tôi chắc chắn rằng nhiều người muốn hiểu rõ hơn về cách tín hiệu được điều chế thành FM.
not2qubit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.