We investigate the fair channel assignment and access design problem for cognitive radio ad hoc network in this paper. In particular, we consider a scenario where ad hoc network nodes have hardware constraints which allow them to access at most one channel at any time. We investigate a fair channel allocation problem where each node is allocated a subset of channels which are sensed and accessed periodically by their owners by using a MAC protocol. Toward this end, we analyze the complexity of the optimal brute-force search algorithm which finds the optimal solution for this NP-hard problem. We then develop low-complexity algorithms that can work efficiently with a MAC protocol algorithm, which resolves the access contention from neighboring secondary nodes. Also, we develop a throughput analytical model, which is used in the proposed channel allocation algorithm and for performance evaluation of its performance. Finally, we present extensive numerical results to demonstrate the efficacy of the proposed algorithms in achieving fair spectrum sharing among traffic flows in the network.